Skip to main content
Glama

Home Assistant MCP Server

configuration.json887 kB
{ "$ref": "#/definitions/ConfigurationRoot", "definitions": { "Schema": { "type": "object", "properties": { "auth_mfa_modules": { "anyOf": [ { "type": "array", "items": {} }, { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" } ] }, "auth_providers": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "type": "array", "items": { "$ref": "#/definitions/AuthProviders" } } ] }, "allowlist_external_dirs": { "description": "List of folders that can be used as sources for files.\nhttps://www.home-assistant.io/docs/configuration/basic/#allowlist_external_dirs", "type": "array", "items": { "type": "string" } }, "allowlist_external_urls": { "description": "List of URLs that can be used as sources for files.\nhttps://www.home-assistant.io/docs/configuration/basic/#allowlist_external_urls", "type": "array", "items": { "type": "string" } }, "country": { "description": "Country in which Home Assistant is running. This may, for example, influence radio settings to comply with local regulations. The country should be specified as an ISO 3166.1 alpha-2 code. Pick your country from the column Code of Wikipedia’s list of ISO 31661 alpha-2 officially assigned code codes.\nhttps://www.home-assistant.io/docs/configuration/basic/#country", "enum": [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "YE", "YT", "ZA", "ZM", "ZW" ], "type": "string" }, "currency": { "description": "Set the default currency for Home Assistant to use.\nhttps://www.home-assistant.io/docs/configuration/basic/#currency", "enum": [ "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYR", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XOF", "XPF", "YER", "ZAR", "ZMK", "ZWL" ], "type": "string" }, "customize": { "description": "Customize entities.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/CoreCustomize" } ] }, "customize_domain": { "description": "Customize all entities of a given domain.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/CoreCustomize" } ] }, "customize_glob": { "description": "Customize entities matching a pattern.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/CoreCustomize" } ] }, "elevation": { "type": "integer", "description": "Altitude above sea level in meters. Impacts weather/sunrise data.\nhttps://www.home-assistant.io/docs/configuration/basic/#elevation" }, "external_url": { "description": "The URL that Home Assistant is available on from the internet. For example: https://example.duckdns.org:8123. Note that this setting may only contain a protocol, hostname and port; using a path is not supported.\nhttps://www.home-assistant.io/docs/configuration/basic/#external_url", "type": "string" }, "internal_url": { "description": "The URL that Home Assistant is available on from your local network. For example: http://homeassistant.local:8123. Note that this setting may only contain a protocol, hostname and port; using a path is not supported.\nhttps://www.home-assistant.io/docs/configuration/basic/#internal_url", "type": "string" }, "language": { "description": "Default language used by Home Assistant. This may, for example, influence the language used by voice assistants. The language should be specified as an RFC 5646 language tag, and must be a language which Home Assistant is translated to.\nhttps://www.home-assistant.io/docs/configuration/basic/#language", "enum": [ "af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "en-GB", "eo", "es", "es-419", "et", "eu", "fa", "fi", "fr", "fy", "gl", "gsw", "he", "hi", "hr", "hu", "hy", "id", "is", "it", "ja", "ka", "ko", "lb", "lt", "lv", "ml", "nb", "nl", "nn", "pl", "pt", "pt-BR", "ro", "ru", "sk", "sl", "sr", "sr-Latn", "sv", "ta", "te", "th", "tr", "uk", "ur", "vi", "zh-Hans", "zh-Hant" ], "type": "string" }, "latitude": { "description": "Latitude of your location required to calculate the time the sun rises and sets.\nhttps://www.home-assistant.io/docs/configuration/basic/#latitude", "minimum": -90, "maximum": 90, "type": "number" }, "legacy_templates": { "description": "Enable this option to restore pre-0.117 template rendering. Which renders all templates to string, instead of native types.\nhttps://www.home-assistant.io/docs/configuration/basic/#legacy_templates", "type": "boolean" }, "longitude": { "description": "Longitude of your location required to calculate the time the sun rises and sets.\nhttps://www.home-assistant.io/docs/configuration/basic/#longitude", "minimum": -180, "maximum": 180, "type": "number" }, "media_dirs": { "description": "A mapping of local media sources and their paths on disk.\nhttps://www.home-assistant.io/docs/configuration/basic/#media_dirs", "type": "object", "additionalProperties": { "type": "string" } }, "name": { "description": "Name of the location where Home Assistant is running.\nhttps://www.home-assistant.io/docs/configuration/basic/#name", "type": "string" }, "packages": { "description": "Packages in Home Assistant provide a way to bundle different component’s configuration together. It allows for \"splitting\" your configuration.\nhttps://www.home-assistant.io/docs/configuration/packages/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/ConfigurationRoot" } ] }, "time_zone": { "description": "Pick your time zone from the column TZ of Wikipedia’s list of tz database time\nhttps://www.home-assistant.io/docs/configuration/basic/#time_zone\nhttps://www.wikiwand.com/en/List_of_tz_database_time_zones", "enum": [ "Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Nelson", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Punta_Arenas", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Atyrau", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Barnaul", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Chita", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Famagusta", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Srednekolymsk", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Tomsk", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yangon", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Ulyanovsk", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT+0", "GMT-0", "GMT0", "Greenwich", "HST", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Bougainville", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROC", "ROK", "Singapore", "Turkey", "UCT", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Pacific-New", "US/Samoa", "UTC", "Universal", "W-SU", "WET", "Zulu" ], "type": "string" }, "unit_system": { "description": "\"metric\" for Metric, \"imperial\" for Imperial.\nThis also sets temperature unit Home Assistant will use.\nhttps://www.home-assistant.io/docs/configuration/basic/#unit_system", "enum": ["imperial", "metric"], "type": "string" }, "temperature_unit": { "description": "Override temperature unit set by unit_system.\n\"C\" for Celsius, \"F\" for Fahrenheit.\nhttps://www.home-assistant.io/docs/configuration/basic/#temperature_unit", "enum": ["C", "F"], "type": "string" } }, "additionalProperties": false }, "AuthProviders": { "description": "TODO: Definitions below need to be extracted in a similar fashion as integrations.", "anyOf": [ { "$ref": "#/definitions/HomeAssistantAuthProvider" }, { "$ref": "#/definitions/TrustedNetworksAuthProvider" }, { "$ref": "#/definitions/CommandLineAuthProvider" }, { "$ref": "#/definitions/LegacyApiPasswordAuthProvider" } ] }, "HomeAssistantAuthProvider": { "type": "object", "properties": { "type": { "type": "string", "const": "homeassistant" } }, "additionalProperties": false, "required": ["type"] }, "TrustedNetworksAuthProvider": { "type": "object", "properties": { "type": { "type": "string", "const": "trusted_networks" }, "trusted_networks": { "anyOf": [ { "type": "array", "items": {} }, { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "trusted_users": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "array", "items": { "anyOf": [ { "type": "object", "additionalProperties": { "type": "string" } }, { "type": "string" } ] } }, { "type": "string" } ] } }, "allow_bypass_login": { "type": "boolean" } }, "additionalProperties": false, "required": ["trusted_networks", "type"] }, "CommandLineAuthProvider": { "type": "object", "properties": { "type": { "type": "string", "const": "command_line" }, "command": { "type": "string" }, "args": {}, "meta": { "type": "boolean" } }, "additionalProperties": false, "required": ["command", "type"] }, "LegacyApiPasswordAuthProvider": { "type": "object", "properties": { "type": { "type": "string", "const": "legacy_api_password" }, "api_password": { "type": "string" } }, "additionalProperties": false, "required": ["api_password", "type"] }, "CoreCustomize": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/CoreCustomizeItem" } ] } }, "CoreCustomizeItem": { "additionalProperties": true, "type": "object", "properties": { "assumed_state": { "description": "For switches with an assumed state two buttons are shown (turn off, turn on) instead of a switch.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#assumed_state", "type": "boolean" }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the UI (see below).\nPlease note: It does not set the unit_of_measurement.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#device_class", "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" }, "entity_picture": { "description": "URL to use as picture for entity.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#entity_picture", "type": "string" }, "friendly_name": { "description": "Name of the entity as displayed in the UI.\nPlease note that most of the time you can just rename the entity in the UI itself.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#friendly_name", "type": "string" }, "icon": { "description": "Any icon from MaterialDesignIcons.com. Prefix name with mdi:. For example: mdi:home.\nPlease note that most of the time you can just change the entity icon in the UI itself.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#icon", "type": "string" }, "initial_state": { "description": "Sets the initial state for automations, on (true) or off (false).\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#initial_state", "type": "boolean" }, "unit_of_measurement": { "description": "Defines the units of measurement, if any. This will also influence the graphical presentation in the history visualization as continuous value. Sensors with missing unit_of_measurement are showing as discrete values.\nhttps://www.home-assistant.io/docs/configuration/customizing-devices/#unit_of_measurement", "type": "string" } } }, "ConfigurationRoot": { "additionalProperties": true, "type": "object", "properties": { "homeassistant": { "description": "Home Assistant Core configuration\nhttps://www.home-assistant.io/docs/configuration/basic", "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/Schema" } ] }, "alarm_control_panel": { "description": "Home Assistant can give you an interface which is similar to a classic alarm system.\nhttps://www.home-assistant.io/integrations/alarm_control_panel", "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": { "$ref": "#/definitions/Item" } } ] }, "automation": { "description": "Automations offer the capability to call a service based on a simple or complex trigger. Automation allows a condition such as a sunset to cause an event, such as a light turning on.\nhttps://www.home-assistant.io/docs/automation/", "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": { "$ref": "#/definitions/Item_1" } } ] }, "binary_sensor": { "description": "Binary sensors gather information about the state of devices which have a “digital” return value (either 1 or 0). These can be switches, contacts, pins, etc.\nhttps://www.home-assistant.io/integrations/binary_sensor", "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": { "$ref": "#/definitions/Item_2" } } ] }, "blueprint": { "description": "Blueprints provide predefined templates for e.g., automations.\nhttps://www.home-assistant.io/integrations/blueprint", "type": "null" }, "camera": { "description": "The camera integration allows you to use IP cameras with Home Assistant.\nhttps://www.home-assistant.io/integrations/camera", "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": { "$ref": "#/definitions/OtherPlatform_2" } } ] }, "climate": { "description": "The Climate integration allows you to control and monitor HVAC (heating, ventilating, and air conditioning) devices and thermostats.\nhttps://www.home-assistant.io/integrations/climate", "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": { "$ref": "#/definitions/OtherPlatform_3" } } ] }, "conversation": { "description": "The conversation integration allows you to converse with Home Assistant.\nhttps://www.home-assistant.io/integrations/conversation", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_1" }, { "type": "null" } ] }, "counter": { "description": "The counter integration allows one to count occurrences fired by automations.\nhttps://www.home-assistant.io/integrations/counter", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_2" }, { "type": "null" } ] }, "cover": { "description": "Home Assistant can give you an interface to control covers such as rollershutters, blinds, and garage doors.\nhttps://www.home-assistant.io/integrations/cover", "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": { "$ref": "#/definitions/Item_4" } } ] }, "default_config": { "description": "This integration is a meta-component and configures a default set of integrations for Home Assistant to load.\nhttps://www.home-assistant.io/integrations/default_config", "type": "null" }, "device_tracker": { "description": "The device tracker allows you to track devices in Home Assistant. This can happen by querying your wireless router or by having applications push location info.\nhttps://www.home-assistant.io/integrations/device_tracker", "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": { "$ref": "#/definitions/OtherPlatform_5" } } ] }, "fan": { "description": "The Fan integration allows you to control and monitor Fan devices.\nhttps://www.home-assistant.io/integrations/fan", "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": { "$ref": "#/definitions/Item_5" } } ] }, "group": { "description": "Groups allows you to combine multiple entities into a single group entity.\nhttps://www.home-assistant.io/integrations/group", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_3" }, { "type": "null" } ] }, "http": { "description": "The http integration serves all files and data required for the Home Assistant frontend. You only need to add this to your configuration file if you want to change any of the default settings.\nhttps://www.home-assistant.io/integrations/http", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_4" }, { "type": "null" } ] }, "input_boolean": { "description": "The input_boolean integration allows the user to define boolean values that can be controlled via the frontend and can be used within conditions of automation. This can for example be used to disable or enable certain automations.\nhttps://www.home-assistant.io/integrations/input_boolean", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_5" }, { "type": "null" } ] }, "input_button": { "description": "The Input Button helper integration allows you to define buttons that can be pressed via the user interface, and can be used to trigger things, like an automation.\nhttps://www.home-assistant.io/integrations/input_button", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_6" }, { "type": "null" } ] }, "input_datetime": { "description": "The input_datetime integration allows the user to define date and time values that can be controlled via the frontend and can be used within automations and templates.\nhttps://www.home-assistant.io/integrations/input_datetime", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_7" }, { "type": "null" } ] }, "input_number": { "description": "The input_number integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation. The frontend can display a slider, or a numeric input box.\nhttps://www.home-assistant.io/integrations/input_number", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_8" }, { "type": "null" } ] }, "input_select": { "description": "The input_select integration allows the user to define a list of values that can be selected via the frontend and can be used within conditions of an automation.\nhttps://www.home-assistant.io/integrations/input_select", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_9" }, { "type": "null" } ] }, "input_text": { "description": "The input_text integration allows the user to define values that can be controlled via the frontend and can be used within conditions of automation.\nhttps://www.home-assistant.io/integrations/input_text", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_10" }, { "type": "null" } ] }, "intent_script": { "description": "The intent script integration allows users to configure actions and responses to intents. Intents can be fired by any integration that supports it.", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_11" }, { "type": "null" } ] }, "light": { "description": "This integration allows you to track and control various light bulbs.\nhttps://www.home-assistant.io/integrations/light", "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": { "$ref": "#/definitions/Item_14" } } ] }, "lock": { "description": "Keeps track which locks are in your environment, their state and allows you to control them.\nhttps://www.home-assistant.io/integrations/lock", "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": { "$ref": "#/definitions/Item_15" } } ] }, "lovelace": { "description": "Lovelace is the Home Assistant dashboard. It’s a fast, customizable and powerful way for users to manage their homes, working on mobile and desktop.\nhttps://www.home-assistant.io/lovelace", "anyOf": [{ "$ref": "#/definitions/Schema_12" }, { "type": "null" }] }, "number": { "description": "Keeps track on number entities in your environment, their state, and allows you to control them.\nhttps://www.home-assistant.io/integrations/number", "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": { "$ref": "#/definitions/OtherPlatform_9" } } ] }, "panel_iframe": { "description": "The panel_iframe support allows you to add additional panels to your Home Assistant frontend. The panels are listed in the sidebar and can contain external resources like the web frontend of your router, your monitoring system, or your media server.\nhttps://www.home-assistant.io/integrations/panel_iframe", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_13" } ] }, "script": { "description": "The script integration allows users to specify a sequence of actions to be executed by Home Assistant. These are run when you turn the script on. The script integration will create an entity for each script and allow them to be controlled via services.\nhttps://www.home-assistant.io/integrations/script", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_14" } ] }, "scene": { "description": "You can create scenes that capture the states you want certain entities to be. For example, a scene can specify that light A should be turned on and light B should be bright red.\nhttps://www.home-assistant.io/integrations/scene", "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": { "$ref": "#/definitions/Item_17" } } ] }, "select": { "description": "Selects offers a limited set of selectable options for the entity state.\nhttps://www.home-assistant.io/integrations/select", "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": { "$ref": "#/definitions/OtherPlatform_10" } } ] }, "sensor": { "description": "Sensors are gathering information about states and conditions.\nhttps://www.home-assistant.io/integrations/sensor", "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": { "$ref": "#/definitions/Item_18" } } ] }, "switch": { "description": "Keeps track which switches are in your environment, their state and allows you to control them.\nhttps://www.home-assistant.io/integrations/switch", "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": { "$ref": "#/definitions/Item_19" } } ] }, "template": { "description": "The template integration allows creating entities which derive their values from other data.\nhttps://www.home-assistant.io/integrations/template", "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": { "$ref": "#/definitions/Item_20" } } ] }, "vacuum": { "description": "The vacuum integration enables the ability to control home cleaning robots within Home Assistant.\nhttps://www.home-assistant.io/integrations/vacuum", "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": { "$ref": "#/definitions/Item_21" } } ] }, "weather": { "description": "The weather platforms gather meteorological information from web services and display the conditions and other details about the weather at the given location.\nhttps://www.home-assistant.io/integrations/weather", "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": { "$ref": "#/definitions/Item_22" } } ] }, "cloud": { "description": "The Home Assistant Cloud allows you to quickly integrate your local Home Assistant with various cloud services like Amazon Alexa and Google Assistant.\nhttps://www.nabucasa.com/config/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_15" }, { "type": "null" } ] }, "knx": { "description": "The KNX integration for Home Assistant allows you to connect to KNX/IP devices.\nhttps://www.home-assistant.io/integrations/knx", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_16" } ] }, "mqtt": { "description": "MQTT (aka MQ Telemetry Transport) is a machine-to-machine or “Internet of Things” connectivity protocol on top of TCP/IP. It allows extremely lightweight publish/subscribe messaging transport.\nhttps://www.home-assistant.io/integrations/mqtt/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_23" }, { "type": "array", "items": { "$ref": "#/definitions/Item_23" } } ] }, "mqtt_eventstream": { "description": "The mqtt_eventstream integration connects two Home Assistant instances via MQTT.\nhttps://www.home-assistant.io/integrations/mqtt_eventstream", "anyOf": [{ "$ref": "#/definitions/Schema_17" }, { "type": "null" }] }, "mqtt_statestream": { "description": "The mqtt_statestream integration publishes state changes in Home Assistant to individual MQTT topics.\nhttps://www.home-assistant.io/integrations/mqtt_statestream", "$ref": "#/definitions/Schema_18" }, "hacs": { "description": "Home Assistant Community Store\nhttps://hacs.xyz/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Schema_19" } ] } } }, "Item": { "anyOf": [ { "$ref": "#/definitions/AlarmControlPanelPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform" } ] }, "AlarmControlPanelPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template integrations creates alarm control panels that combine integrations or adds pre-processing logic to actions.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/", "type": "string", "const": "template" }, "panels": { "description": "List of panels.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#panels", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/AlarmControlPanelPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["panels", "platform"] }, "AlarmControlPanelPlatformItem": { "type": "object", "properties": { "arm_away": { "description": "Defines an action to run when the alarm is armed to away mode.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#arm_away", "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" } } ] }, "arm_home": { "description": "Defines an action to run when the alarm is armed to home mode.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#arm_home", "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" } } ] }, "arm_night": { "description": "Defines an action to run when the alarm is armed to night mode.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#arm_night", "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" } } ] }, "code_arm_required": { "description": "If true, the code is required to arm the alarm.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#code_arm_required", "type": "boolean" }, "code_format": { "description": "Format for the code used to arm/disarm the alarm.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#code_format", "enum": ["no_code", "number", "text"], "type": "string" }, "disarm": { "description": "Defines an action to run when the alarm is disarmed.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#disarm", "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" } } ] }, "name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this alarm control panel. Set this to an unique value to allow customization trough the UI.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to set the state of the alarm panel. Only the states armed_away, armed_home, armed_night, disarmed, pending, triggered and unavailable are used.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.template/#value_template", "type": "string" } }, "additionalProperties": false }, "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"] }, "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": "^.*..*$" } } ] }, "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"] }, "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 }, "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"] }, "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..*$" } } ] }, "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 }, "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"] }, "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"] }, "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"] }, "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" } ] }, "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" } ] }, "OtherPlatform": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_1": { "anyOf": [ { "$ref": "#/definitions/AutomationItem" }, { "$ref": "#/definitions/BlueprintItem" } ] }, "AutomationItem": { "type": "object", "properties": { "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 }, "BlueprintItem": { "type": "object", "properties": { "use_blueprint": { "type": "object", "properties": { "path": { "type": "string" }, "input": { "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["path"] }, "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" } } ] }, "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": ["use_blueprint"] }, "Item_2": { "anyOf": [ { "$ref": "#/definitions/BinarySensorPlatformSchema" }, { "$ref": "#/definitions/BinarySensorPlatformSchema_1" }, { "$ref": "#/definitions/BinarySensorPlatformSchema_2" }, { "$ref": "#/definitions/OtherPlatform_1" } ] }, "BinarySensorPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform supports binary sensors which get their values from other entities. The state of a Template Binary Sensor can only be on or off.\nhttps://www.home-assistant.io/integrations/binary_sensor.template", "type": "string", "const": "template" }, "sensors": { "description": "List of sensors.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#sensors", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/BinarySensorPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["platform", "sensors"] }, "BinarySensorPlatformItem": { "type": "object", "properties": { "attribute_templates": { "description": "Defines templates for attributes of the sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#attribute_templates", "type": "object", "additionalProperties": { "type": "string" } }, "availability_template": { "description": "Defines a template to get the available state of the sensor. Return true if the device is available, false otherwise.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#availability_template", "type": "string" }, "delay_off": { "description": "The amount of time the template state must be not met before this sensor will switch to off.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#delay_off", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "delay_on": { "description": "The amount of time the template state must be met before this sensor will switch to on.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#delay_on", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#device_class", "enum": [ "battery", "battery_charging", "carbon_monoxide", "cold", "connectivity", "door", "garage_door", "gas", "heat", "light", "lock", "moisture", "motion", "moving", "occupancy", "opening", "plug", "power", "presence", "problem", "running", "safety", "smoke", "sound", "tamper", "update", "vibration", "window" ], "type": "string" }, "entity_picture_template": { "description": "Defines a template for the entity picture of the sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#entity_picture_template", "type": "string" }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#friendly_name", "type": "string" }, "icon_template": { "description": "Defines a template for the icon of the sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#icon_template", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this binary sensor. Set this to an unique value to allow customization through the UI.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#unique_id", "type": "string" }, "value_template": { "description": "The sensor is on if the template evaluates as True and off otherwise.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#value_template", "type": "string" } }, "additionalProperties": false, "required": ["value_template"] }, "BinarySensorPlatformSchema_1": { "type": "object", "properties": { "platform": { "description": "The group binary_sensor platform lets you combine multiple binary_sensors into one entity.\nhttps://www.home-assistant.io/integrations/binary_sensor.group", "type": "string", "const": "group" }, "all": { "description": "Set this to true if the group state should only turn on if all grouped entities are on, false otherwise.\nhttps://www.home-assistant.io/integrations/binary_sensor.group/#entities", "type": "boolean" }, "device_class": { "description": "Set this to true if the group state should only turn on if all grouped entities are on, false otherwise.\nhttps://www.home-assistant.io/integrations/binary_sensor.group#device_class", "enum": [ "battery", "battery_charging", "carbon_monoxide", "cold", "connectivity", "door", "garage_door", "gas", "heat", "light", "lock", "moisture", "motion", "moving", "occupancy", "opening", "plug", "power", "presence", "problem", "running", "safety", "smoke", "sound", "tamper", "update", "vibration", "window" ], "type": "string" }, "entities": { "$ref": "#/definitions/Entities", "description": "A list of entities to be included in the binary sensor group.\nhttps://www.home-assistant.io/integrations/binary_sensor.group/#entities" }, "name": { "description": "The name of the binary sensor group. Defaults to \"Binary Sensor Group”.\nhttps://www.home-assistant.io/integrations/binary_sensor.group#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this binary sensor group. If two binary sensors have the same unique ID, Home Assistant will raise an error.\nhttps://www.home-assistant.io/integrations/binary_sensor.group#unique_id", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["entities", "platform"] }, "BinarySensorPlatformSchema_2": { "type": "object", "properties": { "platform": { "description": "The tod platform supports binary sensors which get their values by checking if the current time is within defined time ranges.\nhttps://www.home-assistant.io/integrations/tod", "type": "string", "const": "tod" }, "name": { "description": "Name of the sensor\nhttps://www.home-assistant.io/integrations/tod/#name", "type": "string" }, "before": { "description": "The absolute local time value or sun event for beginning of the time range.\nhttps://www.home-assistant.io/integrations/tod/#before", "anyOf": [ { "type": "string", "pattern": "^[0-9]*:[0-9]*:[0-9]*$" }, { "enum": ["sunrise", "sunset"], "type": "string" } ] }, "before_offset": { "description": "The time offset of the beginning time range.\nhttps://www.home-assistant.io/integrations/tod/#before_offset", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "after": { "description": "The absolute local time value or sun event for ending of the time range.\nhttps://www.home-assistant.io/integrations/tod/#after", "anyOf": [ { "type": "string", "pattern": "^[0-9]*:[0-9]*:[0-9]*$" }, { "enum": ["sunrise", "sunset"], "type": "string" } ] }, "after_offset": { "description": "The time offset of the ending time range.\nhttps://www.home-assistant.io/integrations/tod/#after_offset", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "unique_id": { "description": "The unique ID for this config block. This will be prefixed to all unique IDs of all entities in this block.\nhttps://www.home-assistant.io/integrations/tod/#unique_id", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["after", "before", "name", "platform"] }, "OtherPlatform_1": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(group|template|tod|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "OtherPlatform_2": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "OtherPlatform_3": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Schema_1": { "type": "object", "properties": { "intents": { "description": "Intents that the conversation integration should understand.\nhttps://www.home-assistant.io/integrations/conversation#intents", "type": "object", "additionalProperties": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] } } }, "additionalProperties": false }, "Schema_2": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_3" } ] } }, "Item_3": { "type": "object", "properties": { "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/counter/#icon", "type": "string" }, "initial": { "type": "integer", "minimum": 0, "description": "Initial value when Home Assistant starts or the counter is reset.\nhttps://www.home-assistant.io/integrations/counter/#initial" }, "maximum": { "type": "integer", "description": "Maximum value the counter will have.\nhttps://www.home-assistant.io/integrations/counter/#maximum" }, "minimum": { "type": "integer", "description": "Minimum value the counter will have.\nhttps://www.home-assistant.io/integrations/counter/#minimum" }, "name": { "description": "Name of the counter.\nhttps://www.home-assistant.io/integrations/counter/#name", "type": "string" }, "restore": { "description": "Try to restore the last known value when Home Assistant starts, defaults to `true`.\nhttps://www.home-assistant.io/integrations/counter/#restore", "type": "boolean" }, "step": { "type": "integer", "minimum": 0, "description": "Incremental/step value for the counter.\nhttps://www.home-assistant.io/integrations/counter/#step" } }, "additionalProperties": false }, "Item_4": { "anyOf": [ { "$ref": "#/definitions/CoverPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform_4" } ] }, "CoverPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform can create covers that combine integrations and provides the ability to run scripts or invoke services for each of the open, close, stop, position and tilt commands of a cover.\nhttps://www.home-assistant.io/integrations/cover.template", "type": "string", "const": "template" }, "covers": { "description": "List of covers.\nhttps://www.home-assistant.io/integrations/cover.template/#covers", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/CoverPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["covers", "platform"] }, "CoverPlatformItem": { "type": "object", "properties": { "availability_template": { "description": "Defines a template to get the available state of the component. If the template returns true, the device is available. If the template returns any other value, the device will be unavailable.\nhttps://www.home-assistant.io/integrations/cover.template/#availability_template", "type": "string" }, "close_cover": { "description": "Defines an action to close the cover.\nhttps://www.home-assistant.io/integrations/cover.template/#close_cover", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/cover.template/#device_class", "enum": [ "awning", "blind", "curtain", "damper", "door", "garage", "gate", "shade", "shutter", "window" ], "type": "string" }, "entity_picture_template": { "description": "Defines a template for the entity picture of the sensor.\nhttps://www.home-assistant.io/integrations/cover.template/#entity_picture_template", "type": "string" }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/cover.template/#friendly_name", "type": "string" }, "icon_template": { "description": "Defines a template to specify which icon to use.\nhttps://www.home-assistant.io/integrations/cover.template/#icon_template", "type": "string" }, "open_cover": { "description": "Defines an action to open the cover. If open_cover is specified, close_cover must also be specified.\nhttps://www.home-assistant.io/integrations/cover.template/#open_cover", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "optimistic": { "description": "Force cover position to use optimistic mode.\nhttps://www.home-assistant.io/integrations/cover.template/#optimistic", "type": "boolean" }, "position_template": { "description": "Defines a template to get the state of the cover. Legal values are numbers between 0 (closed) and 100 (open).\nhttps://www.home-assistant.io/integrations/cover.template/#position_template", "type": "string" }, "set_cover_position": { "description": "Defines an action to set to a cover position (between 0 and 100).\nhttps://www.home-assistant.io/integrations/cover.template/#set_cover_position", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_cover_tilt_position": { "description": "Defines an action to set the tilt of a cover (between 0 and 100).\nhttps://www.home-assistant.io/integrations/cover.template/#set_cover_tilt_position", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "stop_cover": { "description": "Defines an action to stop the cover.\nhttps://www.home-assistant.io/integrations/cover.template/#stop_cover", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "tilt_optimistic": { "description": "Force cover tilt position to use optimistic mode.\nhttps://www.home-assistant.io/integrations/cover.template/#tilt_optimistic", "type": "boolean" }, "tilt_template": { "description": "Defines a template to get the tilt state of the cover. Legal values are numbers between 0 (closed) and 100 (open).\nhttps://www.home-assistant.io/integrations/cover.template/#tilt_template", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this cover. Set this to an unique value to allow customization trough the UI.\nhttps://www.home-assistant.io/integrations/cover.template/#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to get the state of the cover. Valid values are open/true or closed/false.\nhttps://www.home-assistant.io/integrations/cover.template/#value_template", "type": "string" } }, "additionalProperties": false }, "OtherPlatform_4": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "OtherPlatform_5": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_5": { "anyOf": [ { "$ref": "#/definitions/FanPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform_6" } ] }, "FanPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform creates fans that combine integrations and provides the ability to run scripts or invoke services for each of the turn_on, turn_off, set_speed, set_oscillating, and set_direction commands of a fan.\nhttps://www.home-assistant.io/integrations/fan.template", "type": "string", "const": "template" }, "fans": { "description": "List of fans.\nhttps://www.home-assistant.io/integrations/fan.template/#fans", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/FanPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["fans", "platform"] }, "FanPlatformItem": { "type": "object", "properties": { "availability_template": { "description": "Defines a template to get the available state of the component. If the template returns true, the device is available.\nhttps://www.home-assistant.io/integrations/fan.template/#availability_template", "type": "string" }, "direction_template": { "description": "Defines a template to get the direction of the fan. Valid value: ‘forward’/‘reverse’\nhttps://www.home-assistant.io/integrations/fan.template/#direction_template", "type": "string" }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/fan.template/#friendly_name", "type": "string" }, "oscillating_template": { "description": "Defines a template to get the osc state of the fan. Valid value: true/false\nhttps://www.home-assistant.io/integrations/fan.template/#oscillating_template", "type": "string" }, "percentage_template": { "description": "Defines a template to get the speed percentage of the fan.\nhttps://www.home-assistant.io/integrations/fan.template/#percentage_template", "type": "string" }, "preset_mode_template": { "description": "Defines a template to get the preset mode of the fan.\nhttps://www.home-assistant.io/integrations/fan.template/#preset_mode_template", "type": "string" }, "preset_modes": { "description": "List of preset modes the fan is capable of. This is an arbitrary list of strings and must not contain any speeds.\nhttps://www.home-assistant.io/integrations/fan.template/#preset_modes", "type": "array", "items": { "type": "string" } }, "set_direction": { "description": "Defines an action to run when the fan is given a direction command.\nhttps://www.home-assistant.io/integrations/fan.template/#set_direction", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_oscillating": { "description": "Defines an action to run when the fan is given an osc state command.\nhttps://www.home-assistant.io/integrations/fan.template/#set_oscillating", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_percentage": { "description": "Defines an action to run when the fan is given a speed percentage command.\nhttps://www.home-assistant.io/integrations/fan.template/#set_percentage", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_preset_mode": { "description": "Defines an action to run when the fan is given a preset command.\nhttps://www.home-assistant.io/integrations/fan.template/#set_preset_mode", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "speed_count": { "type": "integer", "minimum": 0, "description": "The number of speeds the fan supports. Used to calculate the percentage step for the fan.increase_speed and fan.decrease_speed services.\nhttps://www.home-assistant.io/integrations/fan.template/#speed_count" }, "turn_off": { "description": "Defines an action to run when the fan is turned off.\nhttps://www.home-assistant.io/integrations/fan.template/#turn_off", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "turn_on": { "description": "Defines an action to run when the fan is turned on.\nhttps://www.home-assistant.io/integrations/fan.template/#turn_on", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "unique_id": { "description": "An ID that uniquely identifies this fan. Set this to an unique value to allow customization trough the UI.\nhttps://www.home-assistant.io/integrations/fan.template/#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to get the state of the fan. Valid value: ‘on’/‘off’\nhttps://www.home-assistant.io/integrations/fan.template/#value_template", "type": "string" } }, "additionalProperties": false, "required": ["turn_off", "turn_on", "value_template"] }, "OtherPlatform_6": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Schema_3": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_6" } ] } }, "Item_6": { "type": "object", "properties": { "all": { "description": "Set this to true if the group state should only turn on if all grouped entities are on, false otherwise.\nhttps://www.home-assistant.io/integrations/group", "type": "boolean" }, "entities": { "$ref": "#/definitions/Entities", "description": "A list of entities to group.\nhttps://www.home-assistant.io/integrations/group#entities" }, "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/group#icon", "type": "string" }, "name": { "description": "Name of the group.\nhttps://www.home-assistant.io/integrations/group#name", "type": "string" } }, "additionalProperties": false, "required": ["entities"] }, "Schema_4": { "type": "object", "properties": { "base_url": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED.\nThe base URL has been deprecated, please use internal_url and external_url instead." }, "cors_allowed_origins": { "description": "A list of origin domain names to allow CORS requests from. Enabling this will set the Access-Control-Allow-Origin header to the Origin header if it is found in the list, and the Access-Control-Allow-Headers header to Origin, Accept, X-Requested-With, Content-type, Authorization.\nhttps://www.home-assistant.io/integrations/http#cors_allowed_origins", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "ip_ban_enabled": { "description": "Flag indicating whether additional IP filtering is enabled.\nhttps://www.home-assistant.io/integrations/http#ip_ban_enabled", "type": "boolean" }, "login_attempts_threshold": { "type": "integer", "minimum": 0, "description": "Number of failed login attempt from single IP after which it will be automatically banned if ip_ban_enabled is true.\nhttps://www.home-assistant.io/integrations/http#login_attempts_threshold" }, "server_host": { "description": "Only listen to incoming requests on specific IP/host. By default it will accept all IPv4 connections. Use server_host: ::0 if you want to listen to (and only) IPv6.\nWarning! Only use this option when you run Home Assistant Core directly in Python!\nhttps://www.home-assistant.io/integrations/http#server_host", "type": "string" }, "server_port": { "type": "integer", "minimum": 1, "maximum": 65535, "description": "Let you set a port for Home Assistant to run on.\nhttps://www.home-assistant.io/integrations/http#server_port" }, "ssl_certificate": { "description": "Path to your TLS/SSL certificate to serve Home Assistant over a secure connection.\nhttps://www.home-assistant.io/integrations/http#ssl_certificate", "type": "string" }, "ssl_key": { "description": "Path to your TLS/SSL key to serve Home Assistant over a secure connection.\nhttps://www.home-assistant.io/integrations/http#ssl_key", "type": "string" }, "ssl_peer_certificate": { "description": "Path to the client/peer TLS/SSL certificate to accept secure connections from.\nhttps://www.home-assistant.io/integrations/http#ssl_peer_certificate", "type": "string" }, "ssl_profile": { "description": "The Mozilla SSL profile to use. Only lower if you are experiencing integrations causing SSL handshake errors.\nCan be either \"modern\" or \"intermediate\". Modern is the default.\nhttps://www.home-assistant.io/integrations/http#ssl_profile", "enum": ["intermediate", "modern"], "type": "string" }, "trusted_networks": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED.\nThis option has no effect. Please remove this from your configuration." }, "trusted_proxies": { "description": "List of trusted proxies, consisting of IP addresses or networks, that are allowed to set the X-Forwarded-For header. This is required when using use_x_forwarded_for because all requests to Home Assistant, regardless of source, will arrive from the reverse proxy IP address.\nThis option should be handled and set with extreme care!\nhttps://www.home-assistant.io/integrations/http#trusted_proxies", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "use_x_forwarded_for": { "description": "Enable parsing of the X-Forwarded-For header, passing on the client’s correct IP address in proxied setups. You must also whitelist trusted proxies using the trusted_proxies setting for this to work. Non-whitelisted requests with this header will be considered IP spoofing attacks, and the header will, therefore, be ignored.\nhttps://www.home-assistant.io/integrations/http#use_x_forwarded_for", "type": "boolean" }, "use_x_frame_options": { "description": "Controls the `X-Frame-Options` header to help prevent clickjacking.\nhttps://www.home-assistant.io/integrations/http#use_x_frame_options", "type": "boolean" } }, "additionalProperties": false }, "Schema_5": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_7" }, { "type": "null" } ] } }, "Item_7": { "type": "object", "properties": { "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/input_boolean#icon", "type": "string" }, "initial": { "description": "Initial value when Home Assistant starts.\nhttps://www.home-assistant.io/integrations/input_boolean#initial", "type": "boolean" }, "name": { "description": "Name of the input boolean.\nhttps://www.home-assistant.io/integrations/input_boolean#name", "type": "string" } }, "additionalProperties": false }, "Schema_6": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_8" }, { "type": "null" } ] } }, "Item_8": { "type": "object", "properties": { "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/input_button#icon", "type": "string" }, "name": { "description": "Name of the input button.\nhttps://www.home-assistant.io/integrations/input_button#name", "type": "string" } }, "additionalProperties": false }, "Schema_7": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_9" }, { "type": "null" } ] } }, "Item_9": { "type": "object", "properties": { "has_date": { "description": "Set to true if the input should have a date. At least one of has_time or has_date must be defined.\nhttps://www.home-assistant.io/integrations/input_datetime/#has_date", "type": "boolean" }, "has_time": { "description": "Set to true if the input should have a time. At least one of has_time or has_date must be defined.\nhttps://www.home-assistant.io/integrations/input_datetime/#has_time", "type": "boolean" }, "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/input_boolean#icon", "type": "string" }, "initial": { "description": "Initial value when Home Assistant starts.\nhttps://www.home-assistant.io/integrations/input_datetime/#initial", "type": "string" }, "name": { "description": "Name of the input datetime.\nhttps://www.home-assistant.io/integrations/input_datetime/#name", "type": "string" } }, "additionalProperties": false }, "Schema_8": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_10" }, { "type": "null" } ] } }, "Item_10": { "type": "object", "properties": { "mode": { "description": "Show a \"slider\" or a input \"box\" in the UI frontend. Defaults to \"slider\".\nhttps://www.home-assistant.io/integrations/input_number#mode", "enum": ["box", "slider"], "type": "string" }, "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/input_number#icon", "type": "string" }, "initial": { "description": "Initial value when Home Assistant starts.\nhttps://www.home-assistant.io/integrations/input_number#initial", "type": "number" }, "max": { "description": "Maximum value of the number\nhttps://www.home-assistant.io/integrations/input_number#max", "type": "number" }, "min": { "description": "Minimum value of the number\nhttps://www.home-assistant.io/integrations/input_number#min", "type": "number" }, "name": { "description": "Name of the input number.\nhttps://www.home-assistant.io/integrations/input_number#name", "type": "string" }, "step": { "description": "Step value. Smallest value 0.001.\nhttps://www.home-assistant.io/integrations/input_number#step", "type": "number" }, "unit_of_measurement": { "description": "Unit of measurement in which the value of the slider is expressed in.\nhttps://www.home-assistant.io/integrations/input_number#unit_of_measurement", "type": "string" } }, "additionalProperties": false, "required": ["max", "min"] }, "Schema_9": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_11" }, { "type": "null" } ] } }, "Item_11": { "type": "object", "properties": { "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/input_select/#icon", "type": "string" }, "initial": { "description": "Initial value when Home Assistant starts.\nhttps://www.home-assistant.io/integrations/input_select/#initial", "type": "string" }, "name": { "description": "Name of the input select.\nhttps://www.home-assistant.io/integrations/input_select/#name", "type": "string" }, "options": { "description": "List of options to choose from.\nhttps://www.home-assistant.io/integrations/input_select#options", "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "required": ["options"] }, "Schema_10": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_12" }, { "type": "null" } ] } }, "Item_12": { "type": "object", "properties": { "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/input_text/#icon", "type": "string" }, "initial": { "description": "Initial value when Home Assistant starts.\nhttps://www.home-assistant.io/integrations/input_text#initial", "type": "string" }, "max": { "description": "Maximum length for the text value. 255 is the maximum number of characters allowed in an entity state.\nhttps://www.home-assistant.io/integrations/input_text#max", "type": "integer", "minimum": 1, "maximum": 255 }, "min": { "description": "Minimum length for the text value.\nhttps://www.home-assistant.io/integrations/input_text#min", "type": "integer", "minimum": 0, "maximum": 255 }, "mode": { "description": "Can specify text or password. Elements of type “password” provide a way for the user to securely enter a value.\nhttps://www.home-assistant.io/integrations/input_text#mode", "enum": ["password", "text"], "type": "string" }, "name": { "description": "Name of the input text.\nhttps://www.home-assistant.io/integrations/input_text/#name", "type": "string" }, "pattern": { "description": "Regex pattern for client-side validation.\nhttps://www.home-assistant.io/integrations/input_text#pattern", "type": "string" } }, "additionalProperties": false }, "Schema_11": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_13" }, { "type": "null" } ] } }, "Item_13": { "type": "object", "properties": { "action": { "description": "Defines an action to run to intents.\nhttps://www.home-assistant.io/integrations/intent_script/#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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "async_action": { "description": "Set to True to have Home Assistant not wait for the script to finish before returning the intent response.\nhttps://www.home-assistant.io/integrations/intent_script/#async_action", "type": "boolean" }, "card": { "description": "Card to display.\nhttps://www.home-assistant.io/integrations/intent_script/#card", "type": "object", "properties": { "type": { "description": "Type of card to display. Defaults to \"simple\".\nhttps://www.home-assistant.io/integrations/intent_script/#type", "type": "string" }, "title": { "description": "Title of the card to display.\nhttps://www.home-assistant.io/integrations/intent_script/#title", "type": "string" }, "content": { "description": "Contents of the card to display.\nhttps://www.home-assistant.io/integrations/intent_script/#content", "type": "string" } }, "additionalProperties": false, "required": ["content", "title"] }, "speech": { "description": "Text or template to return.\nhttps://www.home-assistant.io/integrations/intent_script/#speech", "type": "object", "properties": { "type": { "description": "Type of speech. Defaults to \"plain\".\nhttps://www.home-assistant.io/integrations/intent_script/#type", "type": "string" }, "text": { "description": "Text to speech\nhttps://www.home-assistant.io/integrations/intent_script/#content", "type": "string" } }, "additionalProperties": false, "required": ["text"] } }, "additionalProperties": false }, "Item_14": { "anyOf": [ { "$ref": "#/definitions/LightPlatformSchema" }, { "$ref": "#/definitions/LightPlatformSchema_1" }, { "$ref": "#/definitions/OtherPlatform_7" } ] }, "LightPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform creates lights that combine integrations and provides the ability to run scripts or invoke services for each of the on, off, and brightness commands of a light.\nhttps://www.home-assistant.io/integrations/light.template", "type": "string", "const": "template" }, "lights": { "description": "List of lights.\nhttps://www.home-assistant.io/integrations/fan.template/#lights", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/LightPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["lights", "platform"] }, "LightPlatformItem": { "type": "object", "properties": { "availability_template": { "description": "Defines a template to get the available state of the component. If the template returns true, the device is available.\nhttps://www.home-assistant.io/integrations/light.template#availability_template", "type": "string" }, "effect_list_template": { "description": "Defines a template to get the list of supported effects. Must render a list.\nhttps://www.home-assistant.io/integrations/light.template#effect_list_template", "type": "string" }, "effect_template": { "description": "Defines a template to get the currently selected effect.\nhttps://www.home-assistant.io/integrations/light.template#effect_template", "type": "string" }, "entity_picture_template": { "description": "Defines a template for the entity picture of the light.\nhttps://www.home-assistant.io/integrations/light.template#entity_picture_template", "type": "string" }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/light.template#friendly_name", "type": "string" }, "hs_template": { "description": "Defines a template to get the HS color of the light. Must render a tuple (hue, saturation).\nhttps://www.home-assistant.io/integrations/light.template#hs_template", "type": "string" }, "icon_template": { "description": "Defines a template for an icon or picture, e.g., showing a different icon for different states.\nhttps://www.home-assistant.io/integrations/light.template#icon_template", "type": "string" }, "level_template": { "description": "Defines a template to get the brightness of the light.\nhttps://www.home-assistant.io/integrations/light.template#level_template", "type": "string" }, "max_mireds_template": { "description": "Defines a template to get the max mireds value of the light.\nhttps://www.home-assistant.io/integrations/light.template#max_mireds_template", "type": "string" }, "min_mireds_template": { "description": "Defines a template to get the min mireds value of the light.\nhttps://www.home-assistant.io/integrations/light.template#min_mireds_template", "type": "string" }, "rgb_template": { "description": "Defines a template to get the RGB color of the light. Must render a tuple or a list (red, green, blue).\nhttps://www.home-assistant.io/integrations/light.template#rgb_template", "type": "string" }, "rgbw_template": { "description": "Defines a template to get the RGBW color of the light. Must render a tuple or a list (red, green, blue, white).\nhttps://www.home-assistant.io/integrations/light.template#rgbw_template", "type": "string" }, "rgbww_template": { "description": "Defines a template to get the RGBWW color of the light. Must render a tuple or a list (red, green, blue, cold white, warm white).\nhttps://www.home-assistant.io/integrations/light.template#rgbww_template", "type": "string" }, "set_effect": { "description": "Defines an action to run when the light is given a effect command.\nhttps://www.home-assistant.io/integrations/light.template#set_effect", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_hs": { "description": "Defines an action to run when the light is given a hs color command. Available variables: `hs` as a tuple, `h` and `s`.\nhttps://www.home-assistant.io/integrations/light.template#set_hs", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_level": { "description": "Defines an action to run when the light is given a brightness command.\nhttps://www.home-assistant.io/integrations/light.template#set_level", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_rgb": { "description": "Defines an action to run when the light is given an RGB color command. Available variables: `rgb` as a tuple, `r`, `g` and `b`.\nhttps://www.home-assistant.io/integrations/light.template#set_rgb", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_rgbw": { "description": "Defines an action to run when the light is given an RGBW color command. Available variables: `rgbw` as a tuple, `rgb` as a tuple, `r`, `g`, `b` and `w`.\nhttps://www.home-assistant.io/integrations/light.template#set_rgbw", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_rgbww": { "description": "Defines an action to run when the light is given an RGBWW color command. Available variables: `rgbww` as a tuple, `rgb` as a tuple, `r`, `g`, `b`, `cw` and `ww`.\nhttps://www.home-assistant.io/integrations/light.template#set_rgbww", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_temperature": { "description": "Defines an action to run when the light is given a color temperature command.\nhttps://www.home-assistant.io/integrations/light.template#set_temperature", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "supports_transition_template": { "description": "Defines a template to get if light supports transition.\nhttps://www.home-assistant.io/integrations/light.template#supports_transition_template", "type": "string" }, "temperature_template": { "description": "Defines a template to get the color temperature of the light.\nhttps://www.home-assistant.io/integrations/light.template#temperature_template", "type": "string" }, "turn_off": { "description": "Defines an action to run when the light is turned off.\nhttps://www.home-assistant.io/integrations/light.template#turn_off", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "turn_on": { "description": "Defines an action to run when the light is turned on.\nhttps://www.home-assistant.io/integrations/light.template#turn_on", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "unique_id": { "description": "An ID that uniquely identifies this light. Set this to an unique value to allow customisation trough the UI.\nhttps://www.home-assistant.io/integrations/light.template#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to get the state of the light.\nhttps://www.home-assistant.io/integrations/light.template#value_template", "type": "string" } }, "additionalProperties": false, "required": ["turn_off", "turn_on"] }, "LightPlatformSchema_1": { "type": "object", "properties": { "platform": { "description": "The group light platform lets you combine multiple lights into one entity.\nhttps://www.home-assistant.io/integrations/light.group/", "type": "string", "const": "group" }, "all": { "description": "Set this to true if the group state should only turn on if all grouped entities are on, false otherwise.\nhttps://www.home-assistant.io/integrations/light.group/#all", "type": "boolean" }, "entities": { "$ref": "#/definitions/Entities", "description": "A list of entities to be included in the light group.\nhttps://www.home-assistant.io/integrations/light.group/#entities" }, "name": { "description": "The name of the light group. Defaults to “Light Group”.\nhttps://www.home-assistant.io/integrations/light.group/#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this light group. If two lights have the same unique ID, Home Assistant will raise an error.\nhttps://www.home-assistant.io/integrations/light.group/#unique_id", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["entities", "platform"] }, "OtherPlatform_7": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(group|template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_15": { "anyOf": [ { "$ref": "#/definitions/LockPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform_8" } ] }, "LockPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform creates locks that combines components.\nhttps://www.home-assistant.io/integrations/lock.template", "type": "string", "const": "template" }, "availability_template": { "description": "Defines a template to get the available state of the component. If the template returns true, the device is available.\nhttps://www.home-assistant.io/integrations/lock.template/#availability_template", "type": "string" }, "lock": { "description": "Defines an action to lock the lock.\nhttps://www.home-assistant.io/integrations/lock.template/#lock", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/lock.template/#name", "type": "string" }, "optimistic": { "description": "Force lock state to use optimistic mode.\nhttps://www.home-assistant.io/integrations/lock.template/#optimistic", "type": "boolean" }, "unique_id": { "description": "An ID that uniquely identifies this lock. Set this to an unique value to allow customization trough the UI.\nhttps://www.home-assistant.io/integrations/lock.template/#unique_id", "type": "string" }, "unlock": { "description": "Defines an action to unlock the lock.\nhttps://www.home-assistant.io/integrations/lock.template/#unlock", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "value_template": { "description": "Defines a template to set the state of the lock.\nhttps://www.home-assistant.io/integrations/lock.template/#value_template", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["lock", "platform", "unlock", "value_template"] }, "OtherPlatform_8": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Schema_12": { "type": "object", "properties": { "dashboards": { "description": "Additional Lovelace YAML dashboards. The key is used for the URL and should contain a hyphen (-)\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#dashboards", "type": "object", "additionalProperties": { "$ref": "#/definitions/DashboardItem" } }, "mode": { "description": "In what mode should the main Lovelace panel be, yaml or storage (UI managed).\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#mode", "enum": ["storage", "yaml"], "type": "string" }, "resources": { "description": "List of resources that should be loaded when you use Lovelace.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#resources", "type": "array", "items": { "$ref": "#/definitions/ResourceItem" } } }, "additionalProperties": false }, "DashboardItem": { "type": "object", "properties": { "filename": { "description": "The file in your config directory where the Lovelace configuration for this panel is.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#filename", "type": "string" }, "icon": { "description": "The icon to show in the sidebar.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#icon", "type": "string" }, "mode": { "description": "The mode of the dashboard, this should always be yaml. Dashboards in storage mode can be created in the Lovelace configuration panel.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#mode", "type": "string", "const": "yaml" }, "require_admin": { "description": "Should this dashboard be only accessible for admin users.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#require_admin", "type": "boolean" }, "show_in_sidebar": { "description": "Should this dashboard be shown in the sidebar.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#show_in_sidebar", "type": "boolean" }, "title": { "description": "The title of the dashboard, will be used in the sidebar.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#title", "type": "string" } }, "additionalProperties": false, "required": ["filename", "mode", "title"] }, "ResourceItem": { "type": "object", "properties": { "type": { "description": "The type of resource, this should be either module for a JavaScript module or css for a StyleSheet.", "enum": ["css", "module"], "type": "string" }, "url": { "description": "The URL of the resource to load.\nhttps://www.home-assistant.io/lovelace/dashboards-and-views/#url", "type": "string" } }, "additionalProperties": false, "required": ["type", "url"] }, "OtherPlatform_9": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Schema_13": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/Item_16" } ] } }, "Item_16": { "type": "object", "properties": { "icon": { "description": "The icon that shows in the sidebar/menu.\nhttps://www.home-assistant.io/integrations/panel_iframe/#icon", "type": "string" }, "require_admin": { "description": "If admin access is required to see this iframe.\nhttps://www.home-assistant.io/integrations/panel_iframe/#require_admin", "type": "boolean" }, "title": { "description": "Friendly title for the panel. Will be used in the sidebar/menu.\nhttps://www.home-assistant.io/integrations/panel_iframe/#title", "type": "string" }, "url": { "description": "The absolute URL or relative URL with an absolute path to open.\nhttps://www.home-assistant.io/integrations/panel_iframe/#url", "format": "uri", "type": "string" } }, "additionalProperties": false, "required": ["title", "url"] }, "Schema_14": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/ScriptItem" }, { "$ref": "#/definitions/BlueprintItem_1" } ] } }, "ScriptItem": { "type": "object", "properties": { "sequence": { "description": "The sequence of actions to be 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" } } ] }, "alias": { "description": "Alias will be used to generate an entity_id from.\nhttps://www.home-assistant.io/integrations/script/#alias", "type": "string" }, "description": { "description": "Description of the automation.\nThis is helpful to know what the automation does.\nhttps://www.home-assistant.io/integrations/script/#description", "type": "string" }, "fields": { "description": "A list of variables that can be passed into this script when calling it. They become available within the templates in that script.\nhttps://www.home-assistant.io/integrations/script/#passing-variables-to-scripts", "type": "object", "additionalProperties": { "$ref": "#/definitions/Field" } }, "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/script/#icon", "type": "string" }, "max": { "description": "Controls maximum number of runs executing and/or queued up to run at a time. Only valid with modes queued and parallel.\nhttps://www.home-assistant.io/integrations/script/#max", "type": "integer" }, "mode": { "description": "Controls what happens when script is invoked while it is still running from one or more previous invocations.\nhttps://www.home-assistant.io/integrations/script/#script-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/integrations/script/#script-modes", "enum": [ "critical", "debug", "error", "fatal", "info", "notset", "silent", "warn", "warning" ], "type": "string" }, "trace": { "description": "Controls tracing settings of this script.\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 script." } }, "additionalProperties": false }, "variables": { "description": "Variables that will be available inside your templates.\nhttps://www.home-assistant.io/integrations/script/#variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["sequence"] }, "Field": { "type": "object", "properties": { "advanced": { "description": "Marks if this script parameter is an advanced usage parameter.\nhttps://www.home-assistant.io/integrations/script/#advanced", "type": "boolean" }, "default": { "description": "The default value of this parameter field.\nhttps://www.home-assistant.io/integrations/script/#default" }, "description": { "description": "Description of this script parameter.\nhttps://www.home-assistant.io/integrations/script/#description", "type": "string" }, "example": { "description": "An example value for this script paramter.\nhttps://www.home-assistant.io/integrations/script/#example", "type": "string" }, "name": { "description": "The name of the script parameter field.\nhttps://www.home-assistant.io/integrations/script/#name", "type": "string" }, "required": { "description": "Marks if this script parameter is an advanced usage parameter.\nhttps://www.home-assistant.io/integrations/script/#advanced", "type": "boolean" }, "selector": { "description": "The UI selector to use for this script parameter field.\nhttps://www.home-assistant.io/integrations/script/#selector", "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", "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"] }, "BlueprintItem_1": { "type": "object", "properties": { "use_blueprint": { "type": "object", "properties": { "path": { "type": "string" }, "input": { "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["path"] }, "sequence": { "description": "The sequence of actions to be 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" } } ] }, "alias": { "description": "Alias will be used to generate an entity_id from.\nhttps://www.home-assistant.io/integrations/script/#alias", "type": "string" }, "description": { "description": "Description of the automation.\nThis is helpful to know what the automation does.\nhttps://www.home-assistant.io/integrations/script/#description", "type": "string" }, "fields": { "description": "A list of variables that can be passed into this script when calling it. They become available within the templates in that script.\nhttps://www.home-assistant.io/integrations/script/#passing-variables-to-scripts", "type": "object", "additionalProperties": { "$ref": "#/definitions/Field" } }, "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/script/#icon", "type": "string" }, "max": { "description": "Controls maximum number of runs executing and/or queued up to run at a time. Only valid with modes queued and parallel.\nhttps://www.home-assistant.io/integrations/script/#max", "type": "integer" }, "mode": { "description": "Controls what happens when script is invoked while it is still running from one or more previous invocations.\nhttps://www.home-assistant.io/integrations/script/#script-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/integrations/script/#script-modes", "enum": [ "critical", "debug", "error", "fatal", "info", "notset", "silent", "warn", "warning" ], "type": "string" }, "trace": { "description": "Controls tracing settings of this script.\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 script." } }, "additionalProperties": false }, "variables": { "description": "Variables that will be available inside your templates.\nhttps://www.home-assistant.io/integrations/script/#variables", "type": "object", "additionalProperties": {} } }, "additionalProperties": false, "required": ["use_blueprint"] }, "Item_17": { "type": "object", "properties": { "entities": { "description": "Entities to control and their desired state.\nhttps://www.home-assistant.io/integrations/scene#entities", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "type": "object", "additionalProperties": { "anyOf": [ { "$ref": "#/definitions/ItemEntity" }, { "type": ["string", "number", "boolean"] } ] } } ] }, "icon": { "description": "The icon that shows in the frontend.\nhttps://www.home-assistant.io/integrations/scene#icon", "type": "string" }, "id": { "description": "A unique identifier for this automation.\nDo not use the same twice, ever!\nhttps://www.home-assistant.io/integrations/scene", "type": "string" }, "name": { "description": "Friendly name of scene.\nhttps://www.home-assistant.io/integrations/scene#name", "type": "string" }, "metadata": { "description": "Additional data for merely for use with the frontend. Has no functional effect." } }, "additionalProperties": false, "required": ["entities", "name"] }, "ItemEntity": { "additionalProperties": true, "type": "object", "properties": { "state": { "type": "string" }, "brightness": { "minimum": 0, "maximum": 255, "type": ["string", "number"] }, "source": { "type": "string" }, "color_temp": { "minimum": 1, "type": ["string", "number"] }, "xy_color": {}, "transition": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED.\n\nUsing transitions on scene using this property is no longer supported.\nAlternative: https://www.home-assistant.io/docs/scene/#using-scene-transitions" } } }, "OtherPlatform_10": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_18": { "anyOf": [ { "$ref": "#/definitions/SensorPlatformSchema" }, { "$ref": "#/definitions/SensorPlatformSchema_1" }, { "$ref": "#/definitions/OtherPlatform_11" } ] }, "SensorPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform supports sensors which get their values from other entities.\nhttps://www.home-assistant.io/integrations/template", "type": "string", "const": "template" }, "sensors": { "description": "List of sensors.\nhttps://www.home-assistant.io/integrations/template#sensors", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/SensorPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["platform", "sensors"] }, "SensorPlatformItem": { "type": "object", "properties": { "attribute_templates": { "description": "Defines templates for attributes of the sensor.\nhttps://www.home-assistant.io/integrations/template#attribute_templates", "type": "object", "additionalProperties": { "type": "string" } }, "availability_template": { "description": "Defines a template to get the available state of the sensor. Return true if the device is available, false otherwise.\nhttps://www.home-assistant.io/integrations/template#availability_template", "type": "string" }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/template#device_class", "enum": [ "apparent_power", "aqi", "area", "atmospheric_pressure", "battery", "blood_glucose_concentration", "carbon_dioxide", "carbon_monoxide", "conductivity", "current", "data_rate", "data_size", "date", "distance", "duration", "energy", "energy_distance", "energy_storage", "enum", "frequency", "gas", "humidity", "illuminance", "irradiance", "moisture", "monetary", "nitrogen_dioxide", "nitrogen_monoxide", "nitrous_oxide", "ozone", "ph", "pm1", "pm10", "pm25", "power", "power_factor", "precipitation", "precipitation_intensity", "pressure", "reactive_power", "signal_strength", "sound_pressure", "speed", "sulphur_dioxide", "temperature", "timestamp", "volatile_organic_compounds", "volatile_organic_compounds_parts", "voltage", "volume", "volume_flow_rate", "volume_storage", "water", "weight", "wind_speed" ], "type": "string" }, "entity_picture_template": { "description": "Defines a template for the entity picture of the sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#entity_picture_template", "type": "string" }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#friendly_name", "type": "string" }, "friendly_name_template": { "description": "Defines a template for the name to be used in the frontend (this overrides friendly_name).\nhttps://www.home-assistant.io/integrations/binary_sensor.template#friendly_name", "type": "string" }, "icon_template": { "description": "Defines a template for the icon of the sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#icon_template", "type": "string" }, "state_class": { "description": "The State Class of the sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#state_class", "enum": ["measurement", "total", "total_increasing"], "type": "string" }, "unit_of_measurement": { "description": "Defines the units of measurement of the sensor, if any. This will also influence the graphical presentation in the history visualization as a continuous value.\nhttps://www.home-assistant.io/integrations/binary_sensor.template#unique_id", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this binary sensor. Set this to an unique value to allow customization through the UI.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to get the state of the sensor.\nhttps://www.home-assistant.io/integrations/template#value_template", "type": "string" } }, "additionalProperties": false, "required": ["value_template"] }, "SensorPlatformSchema_1": { "type": "object", "properties": { "platform": { "description": "The mqtt_room sensor platform allows you to detect the indoor location of devices using MQTT clients.\nhttps://www.home-assistant.io/integrations/sensor.mqtt", "type": "string", "const": "mqtt_room" }, "device_id": { "description": "The device id to track for this sensor.\nhttps://www.home-assistant.io/integrations/mqtt_room/#device_id", "type": "string" }, "name": { "description": "The name of the MQTT sensor.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#name", "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive sensor values.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#state_topic", "type": "string" }, "timeout": { "type": "integer", "minimum": 0, "description": "The time in seconds after which a room presence state is considered old.\nhttps://www.home-assistant.io/integrations/mqtt_room/#timeout" }, "away_timeout": { "type": "integer", "minimum": 0, "description": "The time in seconds after which the state should be set to not_home if there were no updates. 0 disables the check.\nhttps://www.home-assistant.io/integrations/mqtt_room/#away_timeout" }, "unique_id": { "description": "An ID that uniquely identifies this room sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.\nhttps://www.home-assistant.io/integrations/mqtt_room/#unique_id", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["device_id", "platform", "state_topic"] }, "OtherPlatform_11": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(mqtt_room|template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_19": { "anyOf": [ { "$ref": "#/definitions/SwitchPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform_12" } ] }, "SwitchPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform creates switches that combines components.\nhttps://www.home-assistant.io/integrations/switch.template", "type": "string", "const": "template" }, "switches": { "description": "List of switches.\nhttps://www.home-assistant.io/integrations/switch.template#switches", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/SwitchPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["platform", "switches"] }, "SwitchPlatformItem": { "type": "object", "properties": { "availability_template": { "description": "Defines a template to get the available state of the component. If the template returns true, the device is available.\nhttps://www.home-assistant.io/integrations/switch.template#availability_template", "type": "string" }, "entity_picture_template": { "description": "Defines a template for the picture of the switch.\nhttps://www.home-assistant.io/integrations/switch.template#entity_picture_template", "type": "string" }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/switch.template#friendly_name", "type": "string" }, "icon_template": { "description": "Defines a template for the icon of the switch.\nhttps://www.home-assistant.io/integrations/switch.template#icon_template", "type": "string" }, "turn_off": { "description": "Defines an action to run when the switch is turned off.\nhttps://www.home-assistant.io/integrations/switch.template#turn_off", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "turn_on": { "description": "Defines an action to run when the switch is turned on.\nhttps://www.home-assistant.io/integrations/switch.template#turn_on", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "unique_id": { "description": "An ID that uniquely identifies this switch. Set this to an unique value to allow customization trough the UI.\nhttps://www.home-assistant.io/integrations/switch.template#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to set the state of the switch. If not defined, the switch will optimistically assume all commands are successful.\nhttps://www.home-assistant.io/integrations/switch.template#value_template", "type": "string" } }, "additionalProperties": false, "required": ["turn_off", "turn_on"] }, "OtherPlatform_12": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_20": { "type": "object", "properties": { "binary_sensor": { "description": "List of binary sensors\nhttps://www.home-assistant.io/integrations/template#binary_sensor", "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": { "$ref": "#/definitions/BinarySensorItem" } } ] }, "button": { "description": "List of buttons\nhttps://www.home-assistant.io/integrations/template#button", "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": { "$ref": "#/definitions/ButtonItem" } } ] }, "number": { "description": "List of numbers\nhttps://www.home-assistant.io/integrations/template#number", "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": { "$ref": "#/definitions/NumberItem" } } ] }, "image": { "description": "List of images\nhttps://www.home-assistant.io/integrations/template/#image", "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": { "$ref": "#/definitions/ImageItem" } } ] }, "select": { "description": "List of selects\nhttps://www.home-assistant.io/integrations/template#select", "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": { "$ref": "#/definitions/SelectItem" } } ] }, "sensor": { "description": "List of sensors\nhttps://www.home-assistant.io/integrations/template#sensor", "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": { "$ref": "#/definitions/SensorItem" } } ] }, "action": { "description": "Define actions to be executed when the trigger fires. Optional. Variables set by the action script are available when evaluating entity templates.\nThis can be used to interact with anything via services, in particular services with response data. See action documentation.\nhttps://www.home-assistant.io/integrations/template/#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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "condition": { "description": "Define conditions that have to be met after a trigger fires and before any actions are executed or sensor updates are performed (for trigger-based entities only). Optional. See condition documentation.\nhttps://www.home-assistant.io/integrations/template/#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" } } ] }, "trigger": { "description": "Define an automation trigger to update the entities. Optional. If omitted will update based on referenced entities. See trigger documentation.\nhttps://www.home-assistant.io/integrations/template#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" } } ] }, "unique_id": { "description": "The unique ID for this config block. This will be prefixed to all unique IDs of all entities in this block.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false }, "BinarySensorItem": { "type": "object", "properties": { "attributes": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "object", "additionalProperties": { "type": "string" } }, "auto_off": { "description": "**Requires a trigger**. After how much time the entity should turn off after it rendered ‘on’.\nhttps://www.home-assistant.io/integrations/template#auto_off", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "delay_off": { "description": "The amount of time (ie 0:00:05) the template state must be not met before this sensor will switch to on. This can also be a template.\nhttps://www.home-assistant.io/integrations/template#delay_off", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "delay_on": { "description": "The amount of time (ie 0:00:05) the template state must be met before this sensor will switch to on. This can also be a template.\nhttps://www.home-assistant.io/integrations/template#delay_on", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the unit_of_measurement.\nhttps://www.home-assistant.io/integrations/template#device_class", "enum": [ "battery", "battery_charging", "carbon_monoxide", "cold", "connectivity", "door", "garage_door", "gas", "heat", "light", "lock", "moisture", "motion", "moving", "occupancy", "opening", "plug", "power", "presence", "problem", "running", "safety", "smoke", "sound", "tamper", "update", "vibration", "window" ], "type": "string" }, "picture": { "description": "Defines a template for the entity picture of the sensor.\nhttps://www.home-assistant.io/integrations/template#picture", "type": "string" }, "state": { "description": "The sensor is on if the template evaluates as True, yes, on, enable or a positive number. Any other value will render it as off. The actual appearance in the frontend (Open/Closed, Detected/Clear etc) depends on the sensor’s device_class value\nhttps://www.home-assistant.io/integrations/template#state", "type": "string" }, "availability": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "string" }, "icon": { "description": "Defines a template for the icon of the entity.\nhttps://www.home-assistant.io/integrations/template#icon", "type": "string" }, "name": { "description": "Defines a template to get the name of the entity.\nhttps://www.home-assistant.io/integrations/template#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the name, icon and entity_id from the web interface.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false }, "ButtonItem": { "type": "object", "properties": { "press": { "description": "Defines actions to run to press the button.\nhttps://www.home-assistant.io/integrations/template#button", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "availability": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "string" }, "icon": { "description": "Defines a template for the icon of the entity.\nhttps://www.home-assistant.io/integrations/template#icon", "type": "string" }, "name": { "description": "Defines a template to get the name of the entity.\nhttps://www.home-assistant.io/integrations/template#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the name, icon and entity_id from the web interface.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false }, "NumberItem": { "type": "object", "properties": { "max": { "description": "Template for the number’s maximum value.\nhttps://www.home-assistant.io/integrations/template#max", "type": "string" }, "min": { "description": "Template for the number’s minimum value.\nhttps://www.home-assistant.io/integrations/template#min", "type": "string" }, "optimistic": { "description": "Flag that defines if number works in optimistic mode.\nhttps://www.home-assistant.io/integrations/template#optimistic", "type": "boolean" }, "set_value": { "description": "Defines actions to run when the number value changes. The variable `value` will contain the number entered.\nhttps://www.home-assistant.io/integrations/template#set_value", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "state": { "description": "Defines a template to get the state of the sensor.\nhttps://www.home-assistant.io/integrations/template#state", "type": "string" }, "step": { "description": "Template for the number’s increment/decrement step.\nhttps://www.home-assistant.io/integrations/template#step", "type": "string" }, "availability": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "string" }, "icon": { "description": "Defines a template for the icon of the entity.\nhttps://www.home-assistant.io/integrations/template#icon", "type": "string" }, "name": { "description": "Defines a template to get the name of the entity.\nhttps://www.home-assistant.io/integrations/template#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the name, icon and entity_id from the web interface.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false, "required": ["set_value", "state", "step"] }, "ImageItem": { "type": "object", "properties": { "url": { "description": "The URL on which the image is served.\nhttps://www.home-assistant.io/integrations/template/#url", "type": "string" }, "verify_ssl": { "description": "Enable or disable SSL certificate verification.\nSet to false to use an http-only URL, or you have a self-signed SSL certificate and haven’t installed the CA certificate to enable verification.\nhttps://www.home-assistant.io/integrations/template/#verify_ssl", "type": "boolean" }, "availability": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "string" }, "icon": { "description": "Defines a template for the icon of the entity.\nhttps://www.home-assistant.io/integrations/template#icon", "type": "string" }, "name": { "description": "Defines a template to get the name of the entity.\nhttps://www.home-assistant.io/integrations/template#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the name, icon and entity_id from the web interface.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false, "required": ["url"] }, "SelectItem": { "type": "object", "properties": { "optimistic": { "description": "Flag that defines if select works in optimistic mode.\nhttps://www.home-assistant.io/integrations/template#options", "type": "boolean" }, "options": { "description": "Template for the select’s available options.\nhttps://www.home-assistant.io/integrations/template#options", "type": "string" }, "select_option": { "description": "Defines actions to run to select an option from the options list. The variable `option` will contain the option selected.\nhttps://www.home-assistant.io/integrations/template#select_option", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "state": { "description": "Template for the select’s current value.\nhttps://www.home-assistant.io/integrations/template#state", "type": "string" }, "availability": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "string" }, "icon": { "description": "Defines a template for the icon of the entity.\nhttps://www.home-assistant.io/integrations/template#icon", "type": "string" }, "name": { "description": "Defines a template to get the name of the entity.\nhttps://www.home-assistant.io/integrations/template#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the name, icon and entity_id from the web interface.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false, "required": ["options", "select_option", "state"] }, "SensorItem": { "type": "object", "properties": { "attributes": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "object", "additionalProperties": { "type": "string" } }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the UI (see below). It does not set the unit_of_measurement.\nhttps://www.home-assistant.io/integrations/template#device_class", "enum": [ "apparent_power", "aqi", "area", "atmospheric_pressure", "battery", "blood_glucose_concentration", "carbon_dioxide", "carbon_monoxide", "conductivity", "current", "data_rate", "data_size", "date", "distance", "duration", "energy", "energy_distance", "energy_storage", "enum", "frequency", "gas", "humidity", "illuminance", "irradiance", "moisture", "monetary", "nitrogen_dioxide", "nitrogen_monoxide", "nitrous_oxide", "ozone", "ph", "pm1", "pm10", "pm25", "power", "power_factor", "precipitation", "precipitation_intensity", "pressure", "reactive_power", "signal_strength", "sound_pressure", "speed", "sulphur_dioxide", "temperature", "timestamp", "volatile_organic_compounds", "volatile_organic_compounds_parts", "voltage", "volume", "volume_flow_rate", "volume_storage", "water", "weight", "wind_speed" ], "type": "string" }, "picture": { "description": "Defines a template for the entity picture of the sensor.\nhttps://www.home-assistant.io/integrations/template#picture", "type": "string" }, "state_class": { "description": "The state_class of the sensor. This will also display the value based on the user profile Number Format setting and influence the graphical presentation in the history visualization as a continuous value.\nhttps://www.home-assistant.io/integrations/template#state_class", "enum": ["measurement", "total", "total_increasing"], "type": "string" }, "state": { "description": "Defines a template to get the state of the sensor.\nhttps://www.home-assistant.io/integrations/template#state", "type": "string" }, "unit_of_measurement": { "description": "Defines the units of measurement of the sensor, if any. This will also display the value based on the user profile Number Format setting and influence the graphical presentation in the history visualization as a continuous value.\nhttps://www.home-assistant.io/integrations/template#state", "type": "string" }, "availability": { "description": "Defines a template to get the available state of the entity. If the template either fails to render or returns True, \"1\", \"true\", \"yes\", \"on\", \"enable\", or a non-zero number, the entity will be available.\nhttps://www.home-assistant.io/integrations/template#availability", "type": "string" }, "icon": { "description": "Defines a template for the icon of the entity.\nhttps://www.home-assistant.io/integrations/template#icon", "type": "string" }, "name": { "description": "Defines a template to get the name of the entity.\nhttps://www.home-assistant.io/integrations/template#name", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this entity. Will be combined with the unique ID of the configuration block if available. This allows changing the name, icon and entity_id from the web interface.\nhttps://www.home-assistant.io/integrations/template#unique_id", "type": "string" } }, "additionalProperties": false, "required": ["state"] }, "Item_21": { "anyOf": [ { "$ref": "#/definitions/VacuumPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform_13" } ] }, "VacuumPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template platform creates vacuums that combine integrations and provides the ability to run scripts or invoke services for each of the start, pause, stop, return_to_base, clean_spot, locate and set_fan_speed commands of a vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.template", "type": "string", "const": "template" }, "vacuums": { "description": "List of vacuums.\nhttps://www.home-assistant.io/integrations/vacuum.template#vacuums", "type": "object", "additionalProperties": { "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "$ref": "#/definitions/VacuumPlatformItem" } ] } }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": ["platform", "vacuums"] }, "VacuumPlatformItem": { "type": "object", "properties": { "attribute_templates": { "description": "Defines templates for attributes of the sensor.\nhttps://www.home-assistant.io/integrations/vacuum.template#attribute_templates", "type": "object", "additionalProperties": { "type": "string" } }, "availability_template": { "description": "Defines a template to get the available state of the component. If the template returns true, the device is available.\nhttps://www.home-assistant.io/integrations/vacuum.template#availability_template", "type": "string" }, "battery_level_template": { "description": "Defines a template to get the battery level of the vacuum. Legal values are numbers between 0 and 100.\nhttps://www.home-assistant.io/integrations/vacuum.template#battery_level_template", "type": "string" }, "clean_spot": { "description": "Defines an action to run when the vacuum is given a clean spot command.\nhttps://www.home-assistant.io/integrations/vacuum.template#clean_spot", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "fan_speed_template": { "description": "Defines a template to get the fan speed of the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.template#fan_speed_template", "type": "string" }, "fan_speeds": { "description": "List of fan speeds supported by the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.template#fan_speeds", "type": "array", "items": { "type": "string" } }, "friendly_name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/vacuum.template#friendly_name", "type": "string" }, "locate": { "description": "Defines an action to run when the vacuum is given a locate command.\nhttps://www.home-assistant.io/integrations/vacuum.template#locate", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "pause": { "description": "Defines an action to run when the vacuum is paused.\nhttps://www.home-assistant.io/integrations/vacuum.template#pause", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "return_to_base": { "description": "Defines an action to run when the vacuum is given a return to base command.\nhttps://www.home-assistant.io/integrations/vacuum.template#return_to_base", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "set_fan_speed": { "description": "Defines an action to run when the vacuum is given a command to set the fan speed.\nhttps://www.home-assistant.io/integrations/vacuum.template#set_fan_speed", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "start": { "description": "Defines an action to run when the vacuum is started.\nhttps://www.home-assistant.io/integrations/vacuum.template#start", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "stop": { "description": "Defines an action to run when the vacuum is stopped.\nhttps://www.home-assistant.io/integrations/vacuum.template#stop", "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" }, { "type": "array", "items": { "$ref": "#/definitions/Action" } } ] }, "unique_id": { "description": "An ID that uniquely identifies this vacuum. Set this to an unique value to allow customization trough the UI.\nhttps://www.home-assistant.io/integrations/vacuum.template#unique_id", "type": "string" }, "value_template": { "description": "Defines a template to get the state of the vacuum. Valid value: docked/cleaning/idle/paused/returning/error.\nhttps://www.home-assistant.io/integrations/vacuum.template#value_template", "type": "string" } }, "additionalProperties": false, "required": ["start"] }, "OtherPlatform_13": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template|mqtt)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Item_22": { "anyOf": [ { "$ref": "#/definitions/WeatherPlatformSchema" }, { "$ref": "#/definitions/OtherPlatform_14" } ] }, "WeatherPlatformSchema": { "type": "object", "properties": { "platform": { "description": "The template integrations creates weather provider that combines integrations and an existing weather provider into a fused weather provider.\nhttps://www.home-assistant.io/integrations/weather.template", "type": "string", "const": "template" }, "apparent_temperature_template": { "description": "Defines a template for the current apparent temperature.\nhttps://www.home-assistant.io/integrations/weather.template#apparent_temperature_template", "type": "string" }, "attribution_template": { "description": "The attribution to be shown in the frontend.\nhttps://www.home-assistant.io/integrations/weather.template#attribution_template", "type": "string" }, "cloud_coverage_template": { "description": "Defines templates for the current cloud coverage.\nhttps://www.home-assistant.io/integrations/weather.template#cloud_coverage_template", "type": "string" }, "condition_template": { "description": "Defines templates for the current weather condition.\nhttps://www.home-assistant.io/integrations/weather.template#condition_template", "type": "string" }, "dew_point_template": { "description": "Defines templates for the current dew point.\nhttps://www.home-assistant.io/integrations/weather.template#dew_point_template", "type": "string" }, "forecast_daily_template": { "description": "Defines templates for the daily forcast data.\nhttps://www.home-assistant.io/integrations/weather.template#forecast_template", "type": "string" }, "forecast_twice_daily_template": { "description": "Defines templates for the twice daily forcast data.\nhttps://www.home-assistant.io/integrations/weather.template#forecast_template", "type": "string" }, "forecast_hourly_template": { "description": "Defines templates for the hourly forcast data.\nhttps://www.home-assistant.io/integrations/weather.template#forecast_template", "type": "string" }, "humidity_template": { "description": "Defines templates for the current humidity.\nhttps://www.home-assistant.io/integrations/weather.template#humidity_template", "type": "string" }, "name": { "description": "Name to use in the frontend.\nhttps://www.home-assistant.io/integrations/weather.template#name", "type": "string" }, "ozone_template": { "description": "The current ozone level.\nhttps://www.home-assistant.io/integrations/weather.template#ozone_template", "type": "string" }, "precipitation_unit": { "description": "The unit of measurement for the precipitation output.\nhttps://www.home-assistant.io/integrations/weather.template#precipitation_unit", "type": "string" }, "pressure_template": { "description": "Defines templates for the current air pressure.\nhttps://www.home-assistant.io/integrations/weather.template#pressure_template", "type": "string" }, "pressure_unit": { "description": "Unit for pressure_template output.\nhttps://www.home-assistant.io/integrations/weather.template#pressure_unit", "enum": [ "Pa", "bar", "cbar", "hPa", "inHg", "kPa", "mbar", "mmHg", "psi" ], "type": "string" }, "temperature_template": { "description": "Defines templates for the current temperature.\nhttps://www.home-assistant.io/integrations/weather.template#temperature_template", "type": "string" }, "temperature_unit": { "description": "Unit for temperature_template output.\nhttps://www.home-assistant.io/integrations/weather.template#temperature_unit", "enum": ["K", "°C", "°F"], "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this weather entity. Set this to a unique value to allow customization through the UI.\nhttps://www.home-assistant.io/integrations/weather.template#unique_id", "type": "string" }, "visibility_template": { "description": "The current visibility.\nhttps://www.home-assistant.io/integrations/weather.template#visibility_template", "type": "string" }, "visibility_unit": { "description": "Unit for visibility_template output.\nhttps://www.home-assistant.io/integrations/weather.template#visibility_unit", "enum": ["cm", "ft", "in", "km", "m", "mi", "mm", "yd"], "type": "string" }, "wind_bearing_template": { "description": "The current wind bearing.\nhttps://www.home-assistant.io/integrations/weather.template#wind_bearing_template", "type": "string" }, "wind_gust_speed_template": { "description": "Defines templates for the current wind gust speed.\nhttps://www.home-assistant.io/integrations/weather.template#wind_gust_speed_template", "type": "string" }, "wind_speed_template": { "description": "Defines templates for the current wind speed.\nhttps://www.home-assistant.io/integrations/weather.template#wind_speed_template", "type": "string" }, "wind_speed_unit": { "description": "Unit for wind_speed_template output.\nhttps://www.home-assistant.io/integrations/weather.template#wind_speed_unit", "enum": ["in/d", "in/h", "km/h", "m/s", "mm/d", "mph"], "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "additionalProperties": false, "required": [ "condition_template", "humidity_template", "name", "platform", "temperature_template" ] }, "OtherPlatform_14": { "additionalProperties": true, "type": "object", "properties": { "platform": { "description": "Platform domain", "pattern": "^(?!(template)$)\\w+$", "type": "string" }, "entity_namespace": { "description": "By setting an entity namespace, all entities will be prefixed with that namespace.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#entity-namespace", "type": "string" }, "scan_interval": { "description": "Allow to change the polling interval if the platform uses a polling mechanism.\nhttps://www.home-assistant.io/docs/configuration/platform_options/#scan-interval", "anyOf": [ { "$ref": "#/definitions/TimePeriodMap" }, { "type": ["string", "number"] } ] } }, "required": ["platform"] }, "Schema_15": { "type": "object", "properties": { "account_link_url": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "acme_directory_server": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "alexa_access_token_url": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "alexa": { "description": "Configure the Amazon Alexa integration.\nhttps://www.nabucasa.com/config/amazon_alexa/", "type": "object", "properties": { "filter": { "description": "Filters for entities to include/exclude from Alexa.\nhttps://www.nabucasa.com/config/amazon_alexa/", "$ref": "#/definitions/Filter" }, "entity_config": { "description": "Entity specific configuration for Alexa.\nhttps://www.nabucasa.com/config/amazon_alexa/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "type": "object", "additionalProperties": { "$ref": "#/definitions/AlexaEntity" } } ] } }, "additionalProperties": false }, "cloudhook_create_url": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "cognito_client_id": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "google_actions_report_state_url": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "google_actions": { "description": "The Google Assistant integration allows users to control the entities via the Home Assistant Smart Home skill for Google Assistant.\nhttps://www.nabucasa.com/config/google_assistant/", "type": "object", "properties": { "filter": { "description": "Filters for entities to include/exclude from Google Assistant.\nhttps://www.nabucasa.com/config/google_assistant/", "$ref": "#/definitions/Filter" }, "entity_config": { "description": "Entity specific configuration for Google Assistant.\nhttps://www.nabucasa.com/config/google_assistant/", "anyOf": [ { "type": "string", "pattern": "^!include_dir_named .*$" }, { "type": "string", "pattern": "^!include_dir_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_named\u000b.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named .*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\r.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\n.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\t.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\f.*$" }, { "type": "string", "pattern": "^!include_dir_merge_named\u000b.*$" }, { "type": "object", "additionalProperties": { "$ref": "#/definitions/GoogleEntity" } } ] } }, "additionalProperties": false }, "mode": { "description": "This option is for development, you do not need it in general.", "enum": ["development", "production"], "type": "string" }, "region": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "relayer": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "remote_api_url": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "subscription_info_url": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "user_pool_id": { "description": "This option is for development, you do not need it in general.", "type": "string" }, "voice_api_url": { "description": "This option is for development, you do not need it in general.", "type": "string" } }, "additionalProperties": false }, "Filter": { "type": "object", "properties": { "exclude_domains": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of domains to be excluded.", "type": "array" }, "exclude_entities": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of entity ids to be excluded,", "anyOf": [ { "type": "string", "pattern": "^.*..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } } ] }, "exclude_entity_globs": { "description": "Exclude all entities matching a listed pattern (e.g., switch.garage_*).", "type": "array", "items": { "type": "string" } }, "include_domains": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of domains to be included.", "type": "array" }, "include_entities": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of entity ids to be included.", "anyOf": [ { "type": "string", "pattern": "^.*..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } } ] }, "include_entity_globs": { "description": "Include all entities matching a listed pattern (e.g., light.living_room_*).", "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "AlexaEntity": { "type": "object", "properties": { "description": { "description": "Description of entity to show in Alexa.", "type": "string" }, "display_categories": { "description": "The display category to use in Alexa.\nAvailable categories: https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-discovery.html#display-categories", "enum": [ "ACTIVITY_TRIGGER", "AIR_CONDITIONER", "AIR_FRESHENER", "AIR_PURIFIER", "AUTO_ACCESSORY", "BLUETOOTH_SPEAKER", "CAMERA", "CHRISTMAS_TREE", "COFFEE_MAKER", "COMPUTER", "CONTACT_SENSOR", "DISHWASHER", "DOOR", "DOORBELL", "DRYER", "EXTERIOR_BLIND", "FAN", "GAME_CONSOLE", "GARAGE_DOOR", "HEADPHONES", "HUB", "INTERIOR_BLIND", "LAPTOP", "LIGHT", "MICROWAVE", "MOBILE_PHONE", "MOTION_SENSOR", "MUSIC_SYSTEM", "NETWORK_HARDWARE", "OTHER", "OVEN", "PHONE", "PRINTER", "ROUTER", "SCENE_TRIGGER", "SCREEN", "SECURITY_PANEL", "SECURITY_SYSTEM", "SLOW_COOKER", "SMARTLOCK", "SMARTPLUG", "SPEAKER", "STREAMING_DEVICE", "SWITCH", "TABLET", "TEMPERATURE_SENSOR", "THERMOSTAT", "TV", "VACUUM_CLEANER", "VEHICLE", "WASHER", "WATER_HEATER", "WEARABLE" ], "type": "string" }, "name": { "description": "Name of entity to show in Alexa.", "type": "string" } }, "additionalProperties": false }, "GoogleEntity": { "type": "object", "properties": { "aliases": { "description": "Aliases that can also be used to refer to this entity.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "name": { "description": "Name of entity to show in Google Assistant.", "type": "string" }, "room": { "description": "Hint for Google Assistant in which room this entity is.", "type": "string" } }, "additionalProperties": false }, "Schema_16": { "type": "object", "properties": { "binary_sensor": { "description": "The KNX binary sensor platform allows you to monitor KNX binary sensors.\nhttps://www.home-assistant.io/integrations/knx#binary-sensor", "type": "array", "items": { "$ref": "#/definitions/BinarySensor" } }, "button": { "description": "The KNX binary sensor platform allows you to monitor KNX binary sensors.\nhttps://www.home-assistant.io/integrations/knx/#button", "type": "array", "items": { "$ref": "#/definitions/Button" } }, "climate": { "description": "The KNX climate platform is used as an interface to KNX thermostats and room controllers.\nhttps://www.home-assistant.io/integrations/knx#binary-sensor", "type": "array", "items": { "$ref": "#/definitions/Climate" } }, "cover": { "description": "The KNX cover platform is used as an interface to KNX covers.\nhttps://www.home-assistant.io/integrations/knx#cover", "type": "array", "items": { "$ref": "#/definitions/Cover" } }, "event": { "description": "Defines lists of patterns for filtering KNX group addresses. Telegrams with destination addresses matching this pattern are sent to the Home Assistant event bus as knx_event.\nhttps://www.home-assistant.io/integrations/knx/#events", "type": "array", "items": { "$ref": "#/definitions/Event" } }, "expose": { "description": "KNX integration is able to expose entity states or attributes to KNX bus.\nhttps://www.home-assistant.io/integrations/knx#exposing-entity-states-entity-attributes-or-time-to-knx-bus", "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ExposeTime" }, { "$ref": "#/definitions/ExposeSensor" } ] } }, "fan": { "description": "The KNX fan integration is used to control KNX fans.\nhttps://www.home-assistant.io/integrations/knx#fan", "type": "array", "items": { "$ref": "#/definitions/Fan" } }, "light": { "description": "The KNX light integration is used as an interface to control KNX actuators for lighting applications.\nhttps://www.home-assistant.io/integrations/knx#light", "type": "array", "items": { "$ref": "#/definitions/Light" } }, "notify": { "description": "The KNX notify platform allows you to send notifications to KNX devices as DPT16 strings.\nhttps://www.home-assistant.io/integrations/knx#notify", "type": "array", "items": { "$ref": "#/definitions/Notify" } }, "number": { "description": "The KNX number platform allows to send generic numeric values to the KNX bus and update its state from received telegrams.\nhttps://www.home-assistant.io/integrations/knx#number", "type": "array", "items": { "$ref": "#/definitions/NumberEntity" } }, "scene": { "description": "The KNX scenes platform allows you to trigger KNX scenes.\nhttps://www.home-assistant.io/integrations/knx#scene", "type": "array", "items": { "$ref": "#/definitions/Scene" } }, "select": { "description": "The KNX select platform allows the user to define a list of values that can be selected via the frontend and can be used within conditions of automation.\nhttps://www.home-assistant.io/integrations/knx#select", "type": "array", "items": { "$ref": "#/definitions/Select" } }, "sensor": { "description": "The KNX sensor platform allows you to monitor KNX sensors.\nhttps://www.home-assistant.io/integrations/knx#sensor", "type": "array", "items": { "$ref": "#/definitions/Sensor" } }, "switch": { "description": "The KNX switch platform is used as an interface to switching actuators.\nhttps://www.home-assistant.io/integrations/knx#switch", "type": "array", "items": { "$ref": "#/definitions/Switch" } }, "text": { "description": "The KNX text platform is used as an interface for sending text.\nhttps://www.home-assistant.io/integrations/knx#text", "type": "array", "items": { "$ref": "#/definitions/TextEntity" } }, "weather": { "description": "The KNX weather platform is used as an interface to KNX weather stations.\nhttps://www.home-assistant.io/integrations/knx#weather", "type": "array", "items": { "$ref": "#/definitions/Weather" } } }, "additionalProperties": false }, "BinarySensor": { "type": "object", "properties": { "context_timeout": { "description": "The time in seconds between multiple identical telegram payloads would count towards the internal counter that is used for automations.\nhttps://www.home-assistant.io/integrations/knx#context_timeout", "minimum": 1, "maximum": 100, "type": "number" }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/knx#device_class", "enum": [ "battery", "battery_charging", "carbon_monoxide", "cold", "connectivity", "door", "garage_door", "gas", "heat", "light", "lock", "moisture", "motion", "moving", "occupancy", "opening", "plug", "power", "presence", "problem", "running", "safety", "smoke", "sound", "tamper", "update", "vibration", "window" ], "type": "string" }, "ignore_internal_state": { "description": "Specifies if telegrams should ignore the internal state and always trigger a Home Assistant state update.\nhttps://www.home-assistant.io/integrations/knx#ignore_internal_state", "type": "boolean" }, "invert": { "description": "Invert the telegrams payload before processing. This is applied before context_timeout or reset_after is evaluated.\nhttps://www.home-assistant.io/integrations/knx#invert", "type": "boolean" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "reset_after": { "description": "Reset back to “off” state after specified seconds.\nhttps://www.home-assistant.io/integrations/knx#reset_after", "type": "number" }, "state_address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address of the binary sensor.\nhttps://www.home-assistant.io/integrations/knx#state_address" }, "sync_state": { "description": "Actively read the value from the bus.\nhttps://www.home-assistant.io/integrations/knx#sync_state", "type": ["string", "number", "boolean"] } }, "additionalProperties": false, "required": ["state_address"] }, "GroupAddresses": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "Button": { "type": "object", "properties": { "address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "description": "Group address to send to.\nhttps://www.home-assistant.io/integrations/knx#address", "type": "string" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "payload": { "type": "integer", "description": "The raw payload to be sent. Defaults to `1`\nhttps://www.home-assistant.io/integrations/knx#payload" }, "payload_length": { "type": "integer", "description": "The length of the payload expected for the DPT. Use `0` for DPT 1, 2 or 3. Defaults to `0`. When `payload_length` is used `value` shall not be set.\nhttps://www.home-assistant.io/integrations/knx#payload_length" }, "value": { "type": "integer", "description": "The value to be sent.\nhttps://www.home-assistant.io/integrations/knx#payload" }, "type": { "description": "A type from the value types to decode the value. Requires `value` to be set.\nhttps://www.home-assistant.io/integrations/knx/#value-types", "enum": [ "1byte_signed", "1byte_unsigned", "2byte_float", "2byte_signed", "2byte_unsigned", "4byte_float", "4byte_signed", "4byte_unsigned", "absolute_temperature", "acceleration", "acceleration_angular", "activation_energy", "active_energy", "active_energy_kwh", "activity", "amplitude", "angle", "angle_deg", "angle_rad", "angular_frequency", "angular_momentum", "angular_velocity", "apparant_energy", "apparant_energy_kvah", "area", "brightness", "capacitance", "charge_density_surface", "charge_density_volume", "color_temperature", "common_temperature", "compressibility", "conductance", "counter_pulses", "curr", "current", "decimal_factor", "delta_time_100ms", "delta_time_10ms", "delta_time_hrs", "delta_time_min", "delta_time_ms", "delta_time_sec", "density", "electric_charge", "electric_current", "electric_current_density", "electric_dipole_moment", "electric_displacement", "electric_field_strength", "electric_flux", "electric_flux_density", "electric_polarization", "electric_potential", "electric_potential_difference", "electrical_conductivity", "electromagnetic_moment", "electromotive_force", "energy", "enthalpy", "flow_rate_m3h", "force", "frequency", "heat_quantity", "heatcapacity", "heatflowrate", "humidity", "illuminance", "impedance", "kelvin_per_percent", "latin_1", "length", "length_mm", "light_quantity", "long_delta_timesec", "luminance", "luminous_flux", "luminous_intensity", "magnetic_field_strength", "magnetic_flux", "magnetic_flux_density", "magnetic_moment", "magnetic_polarization", "magnetization", "magnetomotive_force", "mass", "mass_flux", "mol", "momentum", "percent", "percentU8", "percentV16", "percentV8", "phaseangledeg", "phaseanglerad", "power", "power_2byte", "power_density", "powerfactor", "ppm", "pressure", "pressure_2byte", "pulse", "pulse_2byte", "pulse_2byte_signed", "pulse_4byte", "rain_amount", "reactance", "reactive_energy", "reactive_energy_kvarh", "resistance", "resistivity", "rotation_angle", "scene_number", "self_inductance", "solid_angle", "sound_intensity", "speed", "stress", "string", "surface_tension", "tariff", "temperature", "temperature_a", "temperature_difference", "temperature_difference_2byte", "temperature_f", "thermal_capacity", "thermal_conductivity", "thermoelectric_power", "time_1", "time_2", "time_period_100msec", "time_period_10msec", "time_period_hrs", "time_period_min", "time_period_msec", "time_period_sec", "time_seconds", "torque", "voltage", "volume", "volume_flow", "volume_flux", "volume_liquid_litre", "volume_m3", "weight", "wind_speed_kmh", "wind_speed_ms", "work" ], "type": "string" } }, "additionalProperties": false, "required": ["address"] }, "Climate": { "type": "object", "properties": { "active_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading current activity. `0` is idle, `1` is active. DPT 1\nhttps://www.home-assistant.io/integrations/knx#active_state_addres", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "command_value_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading current command value in percent. `0` sets the climate entity to idle if `active_state_address` is not set. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#command_value_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "controller_mode_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "description": "KNX address for setting HVAC controller modes. DPT 20.105\nhttps://www.home-assistant.io/integrations/knx#controller_mode_address", "type": "string" }, "controller_mode_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading HVAC control mode. DPT 20.105\nhttps://www.home-assistant.io/integrations/knx#controller_mode_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "controller_modes": { "description": "Overrides the supported controller modes.\nhttps://www.home-assistant.io/integrations/knx#controller_modes", "type": "array", "items": { "enum": ["Auto", "Cool", "Dry", "Fan only", "Heat", "Off"], "type": "string" } }, "controller_status_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for HVAC controller status (in accordance with KNX AN 097/07 rev 3).\nhttps://www.home-assistant.io/integrations/knx#controller_status_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "controller_status_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading HVAC controller status.\nhttps://www.home-assistant.io/integrations/knx#controller_status_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "default_controller_mode": { "description": "Overrides the default controller mode. Any Home Assistant hvac_mode can be configured. This can, for example, be set to “cool” for cooling-only devices.\nhttps://www.home-assistant.io/integrations/knx#climate", "enum": [ "auto", "cool", "dry", "fan_only", "heat", "heat_cool", "off" ], "type": "string" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "heat_cool_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for switching between heat/cool mode. DPT 1.100\nhttps://www.home-assistant.io/integrations/knx#heat_cool_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "heat_cool_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading heat/cool mode. DPT 1.100\nhttps://www.home-assistant.io/integrations/knx#heat_cool_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "max_temp": { "description": "Override the minimum temperature.\nhttps://www.home-assistant.io/integrations/knx#max_temp", "type": "number" }, "min_temp": { "description": "Override the minimum temperature.\nhttps://www.home-assistant.io/integrations/knx#min_temp", "type": "number" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "on_off_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for switching the climate device on/off. DPT 1\nhttps://www.home-assistant.io/integrations/knx#on_off_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "on_off_invert": { "description": "Value for switching the climate device on/off is inverted.\nhttps://www.home-assistant.io/integrations/knx#on_off_invert", "type": "boolean" }, "on_off_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for gathering the current state (on/off) of the climate device. DPT 1\nhttps://www.home-assistant.io/integrations/knx#on_off_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_mode_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for setting operation mode (Frost protection/night/comfort). DPT 20.102\nhttps://www.home-assistant.io/integrations/knx#operation_mode_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_mode_comfort_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for switching on/off comfort mode. DPT 1\nhttps://www.home-assistant.io/integrations/knx#operation_mode_comfort_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_mode_frost_protection_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for switching on/off frost/heat protection mode. DPT 1\nhttps://www.home-assistant.io/integrations/knx#operation_mode_frost_protection_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_mode_night_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for switching on/off night mode. DPT 1\nhttps://www.home-assistant.io/integrations/knx#operation_mode_night_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_mode_standby_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for switching on/off standby mode. DPT 1\nhttps://www.home-assistant.io/integrations/knx#operation_mode_standby_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_mode_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading operation mode. DPT 20.102\nhttps://www.home-assistant.io/integrations/knx#operation_mode_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "operation_modes": { "description": "Overrides the supported operation modes.\nhttps://www.home-assistant.io/integrations/knx#operation_modes", "type": "array", "items": { "enum": ["Auto", "Comfort", "Frost", "Night", "Standby"], "type": "string" } }, "setpoint_shift_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for setpoint_shift. DPT 6.010 or DPT 9.002 based on setpoint_shift_mode\nhttps://www.home-assistant.io/integrations/knx#setpoint_shift_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "setpoint_shift_max": { "description": "Maximum value of setpoint shift.\nhttps://www.home-assistant.io/integrations/knx#setpoint_shift_max", "type": "integer", "minimum": 0, "maximum": 32 }, "setpoint_shift_min": { "description": "Minimum value of setpoint shift.\nhttps://www.home-assistant.io/integrations/knx#setpoint_shift_min", "type": "integer", "minimum": -32, "maximum": 0 }, "setpoint_shift_mode": { "description": "Defines the internal device DPT used. Either ‘DPT6010’ or ‘DPT9002’.\nhttps://www.home-assistant.io/integrations/knx#setpoint_shift_mode", "enum": ["DPT6010", "DPT9002"], "type": "string" }, "setpoint_shift_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading setpoint_shift. DPT 6.010 or DPT 9.002 based on setpoint_shift_mode\nhttps://www.home-assistant.io/integrations/knx#setpoint_shift_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "target_temperature_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting target temperature. DPT 9.001\nhttps://www.home-assistant.io/integrations/knx#target_temperature_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "target_temperature_state_address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for reading current target temperature from KNX bus. DPT 9.001\nhttps://www.home-assistant.io/integrations/knx#target_temperature_state_address" }, "temperature_address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for reading current room temperature from KNX bus. DPT 9.001\nhttps://www.home-assistant.io/integrations/knx#temperature_address" }, "temperature_step": { "description": "Defines the step size in Kelvin for each step of setpoint_shift.\nhttps://www.home-assistant.io/integrations/knx#temperature_step", "minimum": 0, "maximum": 2, "type": "number" } }, "additionalProperties": false, "required": ["target_temperature_state_address", "temperature_address"] }, "Cover": { "type": "object", "properties": { "angle_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for tilting the cover to the dedicated angle. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#angle_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "angle_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "Separate KNX group address for requesting the current tilt angle of the cover. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#angle_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/knx#device_class", "enum": [ "awning", "blind", "curtain", "damper", "door", "garage", "gate", "shade", "shutter", "window" ], "type": "string" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "invert_angle": { "description": "Set this to true if your actuator reports fully closed tilt as 0% in KNX.\nhttps://www.home-assistant.io/integrations/knx#invert_angle", "type": "boolean" }, "invert_position": { "description": "Set this to true if your actuator reports fully closed position as 0% in KNX.\nhttps://www.home-assistant.io/integrations/knx#invert_position", "type": "boolean" }, "invert_updown": { "description": "Set this to true to invert the binary up/down commands from/to your KNX actuator.\nhttps://www.home-assistant.io/integrations/knx#invert_updown", "type": "boolean" }, "move_long_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for moving the cover full up or down. DPT 1\nhttps://www.home-assistant.io/integrations/knx#move_long_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "move_short_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for moving the cover stepwise up or down. DPT 1\nhttps://www.home-assistant.io/integrations/knx#move_short_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "position_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for moving the cover to the dedicated position. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#position_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "position_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "Separate KNX group address for requesting the current position of the cover. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#position_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "stop_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for stopping the current movement of the cover. DPT 1\nhttps://www.home-assistant.io/integrations/knx#stop_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "travelling_time_down": { "description": "Time cover needs to travel down in seconds. Needed to calculate the intermediate positions of cover while traveling.\nhttps://www.home-assistant.io/integrations/knx#travelling_time_down", "minimum": 0, "type": "number" }, "travelling_time_up": { "description": "Time cover needs to travel up in seconds. Needed to calculate the intermediate positions of cover while traveling.\nhttps://www.home-assistant.io/integrations/knx#travelling_time_up", "minimum": 0, "type": "number" } }, "additionalProperties": false }, "Event": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address to fire events.\nhttps://www.home-assistant.io/integrations/knx#state_address" }, "type": { "description": "A type from the value types. The decoded value will be written to the event data `value` key.\nhttps://www.home-assistant.io/integrations/knx/#value-types", "enum": [ "1byte_signed", "1byte_unsigned", "2byte_float", "2byte_signed", "2byte_unsigned", "4byte_float", "4byte_signed", "4byte_unsigned", "absolute_temperature", "acceleration", "acceleration_angular", "activation_energy", "active_energy", "active_energy_kwh", "activity", "amplitude", "angle", "angle_deg", "angle_rad", "angular_frequency", "angular_momentum", "angular_velocity", "apparant_energy", "apparant_energy_kvah", "area", "brightness", "capacitance", "charge_density_surface", "charge_density_volume", "color_temperature", "common_temperature", "compressibility", "conductance", "counter_pulses", "curr", "current", "decimal_factor", "delta_time_100ms", "delta_time_10ms", "delta_time_hrs", "delta_time_min", "delta_time_ms", "delta_time_sec", "density", "electric_charge", "electric_current", "electric_current_density", "electric_dipole_moment", "electric_displacement", "electric_field_strength", "electric_flux", "electric_flux_density", "electric_polarization", "electric_potential", "electric_potential_difference", "electrical_conductivity", "electromagnetic_moment", "electromotive_force", "energy", "enthalpy", "flow_rate_m3h", "force", "frequency", "heat_quantity", "heatcapacity", "heatflowrate", "humidity", "illuminance", "impedance", "kelvin_per_percent", "latin_1", "length", "length_mm", "light_quantity", "long_delta_timesec", "luminance", "luminous_flux", "luminous_intensity", "magnetic_field_strength", "magnetic_flux", "magnetic_flux_density", "magnetic_moment", "magnetic_polarization", "magnetization", "magnetomotive_force", "mass", "mass_flux", "mol", "momentum", "percent", "percentU8", "percentV16", "percentV8", "phaseangledeg", "phaseanglerad", "power", "power_2byte", "power_density", "powerfactor", "ppm", "pressure", "pressure_2byte", "pulse", "pulse_2byte", "pulse_2byte_signed", "pulse_4byte", "rain_amount", "reactance", "reactive_energy", "reactive_energy_kvarh", "resistance", "resistivity", "rotation_angle", "scene_number", "self_inductance", "solid_angle", "sound_intensity", "speed", "stress", "string", "surface_tension", "tariff", "temperature", "temperature_a", "temperature_difference", "temperature_difference_2byte", "temperature_f", "thermal_capacity", "thermal_conductivity", "thermoelectric_power", "time_1", "time_2", "time_period_100msec", "time_period_10msec", "time_period_hrs", "time_period_min", "time_period_msec", "time_period_sec", "time_seconds", "torque", "voltage", "volume", "volume_flow", "volume_flux", "volume_liquid_litre", "volume_m3", "weight", "wind_speed_kmh", "wind_speed_ms", "work" ], "type": "string" } }, "additionalProperties": false, "required": ["address"] }, "ExposeTime": { "type": "object", "properties": { "address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "description": "Group address state or attribute updates will be sent to. GroupValueRead requests will be answered.\nhttps://www.home-assistant.io/integrations/knx#address", "type": "string" }, "type": { "description": "Either time, date or datetime.\nhttps://www.home-assistant.io/integrations/knx/#value-types", "enum": ["date", "datetime", "time"], "type": "string" } }, "additionalProperties": false, "required": ["address", "type"] }, "ExposeSensor": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "Group address state or attribute updates will be sent to. GroupValueRead requests will be answered.\nhttps://www.home-assistant.io/integrations/knx#address" }, "attribute": { "description": "Attribute of the entity that shall be sent to the KNX bus. If not set (or None) the state will be sent.\nhttps://www.home-assistant.io/integrations/knx#attribute", "type": "string" }, "cooldown": { "description": "Minimum time in seconds between two sent telegrams.\nhttps://www.home-assistant.io/integrations/knx#cooldown", "minimum": 0, "type": "number" }, "default": { "description": "Default value to send to the bus if the state or attribute value is None.\nhttps://www.home-assistant.io/integrations/knx#default", "type": ["string", "number", "boolean"] }, "entity_id": { "pattern": "^.*..*$", "description": "Entity ID to be exposed.\nhttps://www.home-assistant.io/integrations/knx#entity_id", "type": "string" }, "respond_to_read": { "description": "Respond to GroupValueRead telegrams received to the configured `address`.\nhttps://www.home-assistant.io/integrations/knx#respond_to_read", "type": "boolean" }, "type": { "description": "Type of the exposed value.\nhttps://www.home-assistant.io/integrations/knx/#value-types", "enum": [ "1byte_signed", "1byte_unsigned", "2byte_float", "2byte_signed", "2byte_unsigned", "4byte_float", "4byte_signed", "4byte_unsigned", "absolute_temperature", "acceleration", "acceleration_angular", "activation_energy", "active_energy", "active_energy_kwh", "activity", "amplitude", "angle", "angle_deg", "angle_rad", "angular_frequency", "angular_momentum", "angular_velocity", "apparant_energy", "apparant_energy_kvah", "area", "binary", "brightness", "capacitance", "charge_density_surface", "charge_density_volume", "color_temperature", "common_temperature", "compressibility", "conductance", "counter_pulses", "curr", "current", "date", "datetime", "decimal_factor", "delta_time_100ms", "delta_time_10ms", "delta_time_hrs", "delta_time_min", "delta_time_ms", "delta_time_sec", "density", "electric_charge", "electric_current", "electric_current_density", "electric_dipole_moment", "electric_displacement", "electric_field_strength", "electric_flux", "electric_flux_density", "electric_polarization", "electric_potential", "electric_potential_difference", "electrical_conductivity", "electromagnetic_moment", "electromotive_force", "energy", "enthalpy", "flow_rate_m3h", "force", "frequency", "heat_quantity", "heatcapacity", "heatflowrate", "humidity", "illuminance", "impedance", "kelvin_per_percent", "latin_1", "length", "length_mm", "light_quantity", "long_delta_timesec", "luminance", "luminous_flux", "luminous_intensity", "magnetic_field_strength", "magnetic_flux", "magnetic_flux_density", "magnetic_moment", "magnetic_polarization", "magnetization", "magnetomotive_force", "mass", "mass_flux", "mol", "momentum", "percent", "percentU8", "percentV16", "percentV8", "phaseangledeg", "phaseanglerad", "power", "power_2byte", "power_density", "powerfactor", "ppm", "pressure", "pressure_2byte", "pulse", "pulse_2byte", "pulse_2byte_signed", "pulse_4byte", "rain_amount", "reactance", "reactive_energy", "reactive_energy_kvarh", "resistance", "resistivity", "rotation_angle", "scene_number", "self_inductance", "solid_angle", "sound_intensity", "speed", "stress", "string", "surface_tension", "tariff", "temperature", "temperature_a", "temperature_difference", "temperature_difference_2byte", "temperature_f", "thermal_capacity", "thermal_conductivity", "thermoelectric_power", "time", "time_1", "time_2", "time_period_100msec", "time_period_10msec", "time_period_hrs", "time_period_min", "time_period_msec", "time_period_sec", "time_seconds", "torque", "voltage", "volume", "volume_flow", "volume_flux", "volume_liquid_litre", "volume_m3", "weight", "wind_speed_kmh", "wind_speed_ms", "work" ], "type": "string" } }, "additionalProperties": false, "required": ["address", "entity_id", "type"] }, "Fan": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for setting the percentage or step of the fan. DPT 5.001 or DPT 5.010\nhttps://www.home-assistant.io/integrations/knx#address" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "max_step": { "description": "The maximum amount of steps for a step-controlled fan. If set, the integration will convert percentages to steps automatically.\nhttps://www.home-assistant.io/integrations/knx#max_step", "type": "integer", "minimum": 0, "maximum": 255 }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "oscillation_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for switching the fan oscillation on or off. DPT 1\nhttps://www.home-assistant.io/integrations/knx#oscillation_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "oscillation_stat_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the state of the fan oscillation. DPT 1\nhttps://www.home-assistant.io/integrations/knx#oscillation_stat_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the percentage or step of the fan. DPT 5.001 or DPT 5.010\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] } }, "additionalProperties": false, "required": ["address"] }, "Light": { "type": "object", "properties": { "address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for switching the light on and off. DPT 1.001\nhttps://www.home-assistant.io/integrations/knx#address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "brightness_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the brightness of the light in percent (absolute dimming). DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#brightness_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "brightness_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the brightness of the light in percent. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#brightness_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "color_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the RGB color of the light. DPT 232.600\nhttps://www.home-assistant.io/integrations/knx#color_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "color_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the RGB color of the light. DPT 232.600\nhttps://www.home-assistant.io/integrations/knx#color_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "color_temperature_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the color temperature of the light. DPT 5.001 or 7.600 based on color_temperature_mode\nhttps://www.home-assistant.io/integrations/knx#color_temperature_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "color_temperature_mode": { "description": "Color temperature group address data type. absolute color temperature in Kelvin. color_temperature_address -> DPT 7.600. relative color temperature in percent cold white (0% warmest; 100% coldest). color_temperature_address -> DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#color_temperature_mode", "enum": ["absolute", "relative"], "type": "string" }, "color_temperature_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the color temperature of the light. DPT 5.001 or 7.600 based on color_temperature_mode\nhttps://www.home-assistant.io/integrations/knx#color_temperature_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "hue_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the hue of the light color in degrees. DPT 5.003\nhttps://www.home-assistant.io/integrations/knx#hue_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "hue_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the hue of the light color in degrees. DPT 5.003\nhttps://www.home-assistant.io/integrations/knx#hue_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "individual_colors": { "description": "Used when the actuator only supports individual group addresses for colors. When address is specified for all 3 (or 4) individual colors the root address key can be omitted.\nhttps://www.home-assistant.io/integrations/knx#individual_colors", "type": "object", "properties": { "blue": { "$ref": "#/definitions/LightColor", "description": "Group addresses for the blue component.\nhttps://www.home-assistant.io/integrations/knx#blue" }, "green": { "$ref": "#/definitions/LightColor", "description": "Group addresses for the green component.\nhttps://www.home-assistant.io/integrations/knx#green" }, "red": { "$ref": "#/definitions/LightColor", "description": "Group addresses for the red component.\nhttps://www.home-assistant.io/integrations/knx#red" }, "white": { "description": "Group addresses for the white component.\nhttps://www.home-assistant.io/integrations/knx#white", "$ref": "#/definitions/Light" } }, "additionalProperties": false, "required": ["blue", "green", "red"] }, "max_kelvin": { "description": "Warmest possible color temperature in Kelvin. Used in combination with color_temperature_address.\nhttps://www.home-assistant.io/integrations/knx#max_kelvin", "type": "integer", "minimum": 1 }, "min_kelvin": { "description": "Coldest possible color temperature in Kelvin. Used in combination with color_temperature_address.\nhttps://www.home-assistant.io/integrations/knx#min_kelvin", "type": "integer", "minimum": 1 }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "rgbw_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the RGBW color of the light. DPT 251.600\nhttps://www.home-assistant.io/integrations/knx#rgbw_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "rgbw_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the RGBW color of the light. DPT 251.600\nhttps://www.home-assistant.io/integrations/knx#rgbw_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "saturation_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the saturation of the light color in percent. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#saturation_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "saturation_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the saturation of the light color in percent. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#saturation_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the switch state of the light. DPT 1.001\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "xyy_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for setting the xyY color of the light. DPT 242.600\nhttps://www.home-assistant.io/integrations/knx#xyy_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "xyy_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for retrieving the xyY color of the light. DPT 242.600\nhttps://www.home-assistant.io/integrations/knx#xyy_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] } }, "additionalProperties": false }, "LightColor": { "type": "object", "properties": { "address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address to switch this color component. DPT 1.001\nhttps://www.home-assistant.io/integrations/knx#address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for the state of this color component. DPT 1.001\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "brightness_address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address to set the brightness of this color component. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#brightness_address" }, "brightness_state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for the current brightness of this color component. DPT 5.001\nhttps://www.home-assistant.io/integrations/knx#brightness_state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] } }, "additionalProperties": false, "required": ["brightness_address"] }, "Notify": { "type": "object", "properties": { "address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "description": "KNX group address of the notification. DPT 16.000\nhttps://www.home-assistant.io/integrations/knx#address", "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "type": { "description": "Any supported type of KNX Sensor representing a string value.\nhttps://www.home-assistant.io/integrations/knx#type", "enum": ["latin_1", "string"], "type": "string" } }, "additionalProperties": false, "required": ["address"] }, "NumberEntity": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for sending a new value.\nhttps://www.home-assistant.io/integrations/knx#address" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "max": { "description": "Maximum value that can be sent. Defaults to the `type` DPT maximum value.\nhttps://www.home-assistant.io/integrations/knx#number", "type": "number" }, "min": { "description": "Minimum value that can be sent. Defaults to the `type` DPT minimum value.\nhttps://www.home-assistant.io/integrations/knx#number", "type": "number" }, "mode": { "description": "Specifies the mode used in the UI.\nhttps://www.home-assistant.io/integrations/knx#number", "enum": ["auto", "box", "slider"], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "respond_to_read": { "description": "Respond to GroupValueRead telegrams received to the configured `address`.\nhttps://www.home-assistant.io/integrations/knx#respond_to_read", "type": "boolean" }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "Group address for retrieving the state from the KNX bus.\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "step": { "description": "Step value. Defaults to the step size defined for the DPT in the KNX specifications.\nhttps://www.home-assistant.io/integrations/knx#temperature_step", "minimum": 0, "type": "number" }, "type": { "$ref": "#/definitions/ValueType", "description": "Any supported type of KNX Sensor representing a numeric value (e.g., \"percent\" or \"temperature\")\nhttps://www.home-assistant.io/integrations/knx/#value-types" } }, "additionalProperties": false, "required": ["address", "type"] }, "ValueType": { "enum": [ "1byte_signed", "1byte_unsigned", "2byte_float", "2byte_signed", "2byte_unsigned", "4byte_float", "4byte_signed", "4byte_unsigned", "absolute_temperature", "acceleration", "acceleration_angular", "activation_energy", "active_energy", "active_energy_kwh", "activity", "amplitude", "angle", "angle_deg", "angle_rad", "angular_frequency", "angular_momentum", "angular_velocity", "apparant_energy", "apparant_energy_kvah", "area", "brightness", "capacitance", "charge_density_surface", "charge_density_volume", "color_temperature", "common_temperature", "compressibility", "conductance", "counter_pulses", "curr", "current", "decimal_factor", "delta_time_100ms", "delta_time_10ms", "delta_time_hrs", "delta_time_min", "delta_time_ms", "delta_time_sec", "density", "electric_charge", "electric_current", "electric_current_density", "electric_dipole_moment", "electric_displacement", "electric_field_strength", "electric_flux", "electric_flux_density", "electric_polarization", "electric_potential", "electric_potential_difference", "electrical_conductivity", "electromagnetic_moment", "electromotive_force", "energy", "enthalpy", "flow_rate_m3h", "force", "frequency", "heat_quantity", "heatcapacity", "heatflowrate", "humidity", "illuminance", "impedance", "kelvin_per_percent", "latin_1", "length", "length_mm", "light_quantity", "long_delta_timesec", "luminance", "luminous_flux", "luminous_intensity", "magnetic_field_strength", "magnetic_flux", "magnetic_flux_density", "magnetic_moment", "magnetic_polarization", "magnetization", "magnetomotive_force", "mass", "mass_flux", "mol", "momentum", "percent", "percentU8", "percentV16", "percentV8", "phaseangledeg", "phaseanglerad", "power", "power_2byte", "power_density", "powerfactor", "ppm", "pressure", "pressure_2byte", "pulse", "pulse_2byte", "pulse_2byte_signed", "pulse_4byte", "rain_amount", "reactance", "reactive_energy", "reactive_energy_kvarh", "resistance", "resistivity", "rotation_angle", "scene_number", "self_inductance", "solid_angle", "sound_intensity", "speed", "stress", "string", "surface_tension", "tariff", "temperature", "temperature_a", "temperature_difference", "temperature_difference_2byte", "temperature_f", "thermal_capacity", "thermal_conductivity", "thermoelectric_power", "time_1", "time_2", "time_period_100msec", "time_period_10msec", "time_period_hrs", "time_period_min", "time_period_msec", "time_period_sec", "time_seconds", "torque", "voltage", "volume", "volume_flow", "volume_flux", "volume_liquid_litre", "volume_m3", "weight", "wind_speed_kmh", "wind_speed_ms", "work" ], "type": "string" }, "Scene": { "type": "object", "properties": { "address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for the scene. DPT 17.001\nhttps://www.home-assistant.io/integrations/knx#address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "scene_number": { "description": "KNX scene number to be activated (range 1..64 ).\nhttps://www.home-assistant.io/integrations/knx#scene_number", "type": "integer", "minimum": 1, "maximum": 64 } }, "additionalProperties": false, "required": ["scene_number"] }, "Select": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "Group address new values will be sent to.\nhttps://www.home-assistant.io/integrations/knx#address" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "options": { "description": "List of options to choose from. Each `option` and `payload` have to be unique.\nhttps://www.home-assistant.io/integrations/knx#options", "type": "array", "items": { "type": "object", "properties": { "option": { "description": "The name of the option used to trigger the assigned `payload`.\nhttps://www.home-assistant.io/integrations/knx#option", "type": "string" }, "payload": { "type": "integer", "description": "The raw payload assigned to the `option`.\nhttps://www.home-assistant.io/integrations/knx#payload" } }, "additionalProperties": false, "required": ["option", "payload"] } }, "payload_length": { "type": "integer", "description": "The length of the payload expected for the DPT. Use `0` for DPT 1, 2 or 3.\nhttps://www.home-assistant.io/integrations/knx#payload_length" }, "respond_to_read": { "description": "Respond to GroupValueRead telegrams received to the configured `address`.\nhttps://www.home-assistant.io/integrations/knx#respond_to_read", "type": "boolean" }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "Group address for retrieving the state from the KNX bus.\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "sync_state": { "description": "Actively read the value from the bus.\nhttps://www.home-assistant.io/integrations/knx#sync_state", "type": ["string", "boolean"] } }, "additionalProperties": false, "required": ["address", "options", "payload_length"] }, "Sensor": { "type": "object", "properties": { "always_callback": { "description": "Defines if telegrams with equal payload as the previously received telegram should trigger a state update within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#always_callback", "type": "boolean" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/knx#device_class", "enum": [ "apparent_power", "aqi", "area", "atmospheric_pressure", "battery", "blood_glucose_concentration", "carbon_dioxide", "carbon_monoxide", "conductivity", "current", "data_rate", "data_size", "date", "distance", "duration", "energy", "energy_distance", "energy_storage", "enum", "frequency", "gas", "humidity", "illuminance", "irradiance", "moisture", "monetary", "nitrogen_dioxide", "nitrogen_monoxide", "nitrous_oxide", "ozone", "ph", "pm1", "pm10", "pm25", "power", "power_factor", "precipitation", "precipitation_intensity", "pressure", "reactive_power", "signal_strength", "sound_pressure", "speed", "sulphur_dioxide", "temperature", "timestamp", "volatile_organic_compounds", "volatile_organic_compounds_parts", "voltage", "volume", "volume_flow_rate", "volume_storage", "water", "weight", "wind_speed" ], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "state_address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address of the sensor.\nhttps://www.home-assistant.io/integrations/knx#state_address" }, "state_class": { "description": "The State Class of the sensor.\nhttps://www.home-assistant.io/integrations/knx#state_class", "enum": ["measurement", "total", "total_increasing"], "type": "string" }, "sync_state": { "description": "Actively read the value from the bus.\nhttps://www.home-assistant.io/integrations/knx#sync_state", "type": ["string", "boolean"] }, "type": { "$ref": "#/definitions/ValueType", "description": "A type from the value types.\nhttps://www.home-assistant.io/integrations/knx/#value-types" } }, "additionalProperties": false, "required": ["state_address", "type"] }, "Switch": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for switching the switch on/off. DPT 1\nhttps://www.home-assistant.io/integrations/knx#address" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/knx#device_class", "enum": ["outlet", "switch"], "type": "string" }, "invert": { "description": "Invert the telegrams payload before processing or sending.\nhttps://www.home-assistant.io/integrations/knx#invert", "type": "boolean" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "respond_to_read": { "description": "Respond to GroupValueRead telegrams received to the configured `address`.\nhttps://www.home-assistant.io/integrations/knx#respond_to_read", "type": "boolean" }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "Separate KNX group address for retrieving the switch state. DPT 1\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] } }, "additionalProperties": false, "required": ["address"] }, "TextEntity": { "type": "object", "properties": { "address": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for sending a text.\nhttps://www.home-assistant.io/integrations/knx#address" }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "mode": { "description": "Specifies the mode used in the UI.\nhttps://www.home-assistant.io/integrations/knx#text", "enum": ["password", "text"], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#text", "type": "string" }, "respond_to_read": { "description": "Respond to GroupValueRead telegrams received to the configured `address`.\nhttps://www.home-assistant.io/integrations/knx#respond_to_read", "type": "boolean" }, "state_address": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "Group address for retrieving the state from the KNX bus.\nhttps://www.home-assistant.io/integrations/knx#state_address", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "type": { "$ref": "#/definitions/ValueType", "description": "DPT to encode the text. Either `latin_1` for DPT 16.001 or `string` for DPT 16.000 (ASCII).\nhttps://www.home-assistant.io/integrations/knx/#value-types" } }, "additionalProperties": false, "required": ["address", "type"] }, "Weather": { "type": "object", "properties": { "address_air_pressure": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address reading current air pressure. DPT 9.006\nhttps://www.home-assistant.io/integrations/knx#address_air_pressure", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_brightness_east": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading current brightness to east coordinate from KNX bus. DPT 9.004\nhttps://www.home-assistant.io/integrations/knx#address_brightness_east", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_brightness_north": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading current brightness to north coordinate from KNX bus. DPT 9.004\nhttps://www.home-assistant.io/integrations/knx#address_brightness_north", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_brightness_south": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading current brightness to south coordinate from KNX bus. DPT 9.004\nhttps://www.home-assistant.io/integrations/knx#address_brightness_south", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_brightness_west": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading current brightness to west coordinate from KNX bus. DPT 9.004\nhttps://www.home-assistant.io/integrations/knx#address_brightness_west", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_day_night": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading if it’s day/night.\nhttps://www.home-assistant.io/integrations/knx#address_day_night", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_frost_alarm": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading if frost alarm is on/off.\nhttps://www.home-assistant.io/integrations/knx#address_frost_alarm", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_humidity": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX address for reading current humidity. DPT 9.007\nhttps://www.home-assistant.io/integrations/knx#address_humidity", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_rain_alarm": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading if rain alarm is on/off.\nhttps://www.home-assistant.io/integrations/knx#address_rain_alarm", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_wind_alarm": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading if wind alarm is on/off.\nhttps://www.home-assistant.io/integrations/knx#address_wind_alarm", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_wind_bearing": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading current wind bearing from KNX bus. DPT 5.003\nhttps://www.home-assistant.io/integrations/knx#address_wind_bearing", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "address_wind_speed": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$", "items": { "pattern": "^(\\d{1,2}(\\/\\d{1,2})?\\/\\d{1,4}|\\d{1,5}|i-.+)$" }, "description": "KNX group address for reading current wind speed from KNX bus. DPT 9.005\nhttps://www.home-assistant.io/integrations/knx#address_wind_speed", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "entity_category": { "description": "The category of the entity.\nhttps://www.home-assistant.io/integrations/knx#entity_category", "enum": ["config", "diagnostic"], "type": "string" }, "name": { "description": "A name for this device used within Home Assistant.\nhttps://www.home-assistant.io/integrations/knx#name", "type": "string" }, "sync_state": { "description": "Actively read the value from the bus. If false no GroupValueRead telegrams will be sent to the bus.\nhttps://www.home-assistant.io/integrations/knx#sync_state", "type": ["string", "boolean"] }, "address_temperature": { "$ref": "#/definitions/GroupAddresses", "description": "KNX group address for reading current outside temperature from KNX bus. DPT 9.001\nhttps://www.home-assistant.io/integrations/knx#temperature_address" } }, "additionalProperties": false, "required": ["address_temperature"] }, "Item_23": { "type": "object", "properties": { "alarm_control_panel": { "description": "The mqtt alarm panel platform enables the possibility to control MQTT capable alarm panels. The Alarm icon will change state after receiving a new state from state_topic.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/", "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/AlarmControlPanelItem" }, { "type": "array", "items": { "$ref": "#/definitions/AlarmControlPanelItem" } } ] }, "binary_sensor": { "description": "The mqtt binary sensor platform uses an MQTT message received to set the binary sensor’s state to on or off.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt", "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/BinarySensorItem_1" }, { "type": "array", "items": { "$ref": "#/definitions/BinarySensorItem_1" } } ] }, "button": { "description": "The mqtt button platform lets you send an MQTT message when the button is pressed in the frontend or the button press service is called.\nhttps://www.home-assistant.io/integrations/button.mqtt" }, "camera": { "description": "The mqtt camera platform allows you to integrate the content of an image file sent through MQTT into Home Assistant as a camera.\nhttps://www.home-assistant.io/integrations/camera.mqtt/", "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/CameraItem" }, { "type": "array", "items": { "$ref": "#/definitions/CameraItem" } } ] }, "climate": { "description": "The mqtt climate platform lets you control your MQTT enabled HVAC devices.\nhttps://www.home-assistant.io/integrations/climate.mqtt/", "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/ClimateItem" }, { "type": "array", "items": { "$ref": "#/definitions/ClimateItem" } } ] }, "cover": { "description": "The mqtt cover platform allows you to control an MQTT cover (such as blinds, a rollershutter or a garage door).\nhttps://www.home-assistant.io/integrations/cover.mqtt/", "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/CoverItem" }, { "type": "array", "items": { "$ref": "#/definitions/CoverItem" } } ] }, "device_tracker": { "description": "The mqtt device tracker platform allows you to detect presence by monitoring an MQTT topic for new locations.\nhttps://www.home-assistant.io/integrations/device_tracker.mqtt/", "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/DeviceTrackerItem" }, { "type": "array", "items": { "$ref": "#/definitions/DeviceTrackerItem" } } ] }, "fan": { "description": "The mqtt fan platform lets you control your MQTT enabled fans.\nhttps://www.home-assistant.io/integrations/fan.mqtt/", "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/FanItem" }, { "type": "array", "items": { "$ref": "#/definitions/FanItem" } } ] }, "humidifier": { "description": "The mqtt humidifier platform lets you control your MQTT enabled humidifiers.\nhttps://www.home-assistant.io/integrations/humidifier.mqtt" }, "image": { "description": "The mqtt image platform allows you to integrate the content of an image file sent through MQTT into Home Assistant as an image.\nhttps://www.home-assistant.io/integrations/image.mqtt", "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/ImageItem_1" }, { "type": "array", "items": { "$ref": "#/definitions/ImageItem_1" } } ] }, "light": { "description": "The mqtt light platform lets you control your MQTT enabled lights through one of the supported message schemas, default, json or template.\nhttps://www.home-assistant.io/integrations/light.mqtt/", "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/LightDefaultItem" }, { "$ref": "#/definitions/LightJSONItem" }, { "$ref": "#/definitions/LightTemplateItem" }, { "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/LightDefaultItem" }, { "$ref": "#/definitions/LightTemplateItem" } ] } } ] }, "lock": { "description": "The mqtt lock platform lets you control your MQTT enabled locks.\nhttps://www.home-assistant.io/integrations/lock.mqtt/", "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/LockItem" }, { "type": "array", "items": { "$ref": "#/definitions/LockItem" } } ] }, "number": { "description": "The MQTT number platform.\nhttps://www.home-assistant.io/integrations/number.mqtt/", "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/NumberItem_1" }, { "type": "array", "items": { "$ref": "#/definitions/NumberItem_1" } } ] }, "scene": { "description": "The mqtt scene platform lets you control your MQTT enabled scenes.\nhttps://www.home-assistant.io/integrations/scene.mqtt/" }, "select": { "description": "This mqtt select platform uses the MQTT message payload as the select value.\nhttps://www.home-assistant.io/integrations/select.mqtt", "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/SelectItem_1" }, { "type": "array", "items": { "$ref": "#/definitions/SelectItem_1" } } ] }, "siren": { "description": "The mqtt siren platform lets you control your MQTT enabled sirens and text based notification devices.\nhttps://www.home-assistant.io/integrations/siren.mqtt" }, "sensor": { "description": "This mqtt sensor platform uses the MQTT message payload as the sensor value.\nhttps://www.home-assistant.io/integrations/sensor.mqtt", "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/SensorItem_1" }, { "type": "array", "items": { "$ref": "#/definitions/SensorItem_1" } } ] }, "switch": { "description": "The mqtt switch platform lets you control your MQTT enabled switches.\nhttps://www.home-assistant.io/integrations/switch.mqtt" }, "vacuum": { "description": "The mqtt vacuum integration allows you to control your MQTT-enabled vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt", "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/VacuumItem" }, { "type": "array", "items": { "$ref": "#/definitions/VacuumLegacyItem" } }, { "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/VacuumItem" }, { "$ref": "#/definitions/VacuumLegacyItem" } ] } } ] } }, "additionalProperties": false }, "AlarmControlPanelItem": { "type": "object", "properties": { "code": { "description": "If defined, specifies a code to enable or disable the alarm in the frontend.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#code", "type": "string" }, "code_arm_required": { "description": "If true the code is required to arm the alarm. If false the code is not validated.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#code_arm_required", "type": "boolean" }, "code_disarm_required": { "description": "If true the code is required to disarm the alarm. If false the code is not validated.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#code_disarm_required", "type": "boolean" }, "command_template": { "description": "The template used for the command payload. Available variables: action and code.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#command_template", "type": "string" }, "command_topic": { "description": "The MQTT topic to publish commands to change the alarm state.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#command_topic", "type": "string" }, "name": { "description": "The name of the MQTT alarm.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#name", "type": "string" }, "payload_arm_away": { "description": "The payload to set armed-away mode on your Alarm Panel.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#payload_arm_away", "type": "string" }, "payload_arm_home": { "description": "The payload to set armed-home mode on your Alarm Panel.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#payload_arm_home", "type": "string" }, "payload_arm_night": { "description": "The payload to set armed-night mode on your Alarm Panel.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#payload_arm_night", "type": "string" }, "payload_arm_custom_bypass": { "description": "The payload to set armed-custom-bypass mode on your Alarm Panel.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#payload_arm_custom_bypass", "type": "string" }, "payload_disarm": { "description": "The payload to disarm your Alarm Panel.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#payload_disarm", "type": "string" }, "qos": { "description": "The maximum QoS level of the state topic.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "Set the retain flag for data from the alarm panel.\nRetain is enabled by default.", "type": "boolean" }, "state_topic": { "description": "The MQTT topic subscribed to receive sensor's state.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#state_topic", "type": "string" }, "value_template": { "description": "Defines a template to extract the value.\nhttps://www.home-assistant.io/integrations/alarm_control_panel.mqtt/#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic", "state_topic"] }, "BinarySensorItem_1": { "type": "object", "properties": { "device_class": { "description": "The type/class of the sensor to set the icon in the frontend.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#device_class", "enum": [ "battery", "battery_charging", "carbon_monoxide", "cold", "connectivity", "door", "garage_door", "gas", "heat", "light", "lock", "moisture", "motion", "moving", "occupancy", "opening", "plug", "power", "presence", "problem", "running", "safety", "smoke", "sound", "tamper", "update", "vibration", "window" ], "type": "string" }, "expire_after": { "type": "integer", "minimum": 0, "description": "Defines the number of seconds after the sensor’s state expires, if it’s not updated. After expiry, the sensor’s state becomes unavailable.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#expire_after" }, "force_update": { "description": "Sends update events even if the value hasn’t changed. Useful if you want to have meaningful value graphs in history.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#expire_after", "type": "boolean" }, "name": { "description": "The name of the MQTT binary sensor.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#name", "type": "string" }, "off_delay": { "type": "integer", "minimum": 0, "description": "For sensors that only send on state updates (like PIRs), this variable sets a delay in seconds after which the sensor’s state will be updated back to off.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#off_delay" }, "payload_off": { "description": "The string that represents the off state. It will be compared to the message in the state_topic.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt/#payload_off", "type": "string" }, "payload_on": { "description": "The string that represents the on state. It will be compared to the message in the state_topic.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt/#payload_on", "type": "string" }, "qos": { "description": "The maximum QoS level of the state topic.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#qos", "enum": [0, 1, 2], "type": "number" }, "state_topic": { "description": "The MQTT topic subscribed to receive sensor's state.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#state_topic", "type": "string" }, "value_template": { "description": "Defines a template to extract the value.\nhttps://www.home-assistant.io/integrations/binary_sensor.mqtt#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["state_topic"] }, "CameraItem": { "type": "object", "properties": { "name": { "description": "The name of the MQTT camera.\nhttps://www.home-assistant.io/integrations/camera.mqtt#name", "type": "string" }, "topic": { "description": "The MQTT topic to subscribe to.\nhttps://www.home-assistant.io/integrations/camera.mqtt/#device", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] }, "ClimateItem": { "type": "object", "properties": { "action_template": { "description": "A template to render the value received on the action_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#action_template", "type": "string" }, "action_topic": { "description": "The MQTT topic to subscribe for changes of the current action. If this is set, the climate graph uses the value received as data source. Valid values: off, heating, cooling, drying, idle, fan.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#action_topic", "enum": ["cooling", "drying", "fan", "heating", "idle", "off"], "type": "string" }, "aux_command_topic": { "description": "The MQTT topic to publish commands to switch auxiliary heat.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#aux_command_topic", "type": "string" }, "aux_state_template": { "description": "A template to render the value received on the aux_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#aux_state_template", "type": "string" }, "aux_state_topic": { "description": "The MQTT topic to subscribe for changes of the auxiliary heat mode. If this is not set, the auxiliary heat mode works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#aux_state_topic", "type": "string" }, "current_temperature_template": { "description": "A template with which the value received on current_temperature_topic will be rendered.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#current_temperature_template", "type": "string" }, "current_temperature_topic": { "description": "The MQTT topic on which to listen for the current temperature.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#current_temperature_topic", "type": "string" }, "encoding": { "description": "The encoding of the payloads received and published messages. Set to \"\" to disable decoding of incoming payload.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#encoding", "type": "string" }, "fan_mode_command_template": { "description": "A template to render the value sent to the fan_mode_command_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#fan_mode_command_template", "type": "string" }, "fan_mode_command_topic": { "description": "The MQTT topic to publish commands to change the fan mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#fan_mode_command_topic", "type": "string" }, "fan_mode_state_template": { "description": "A template to render the value received on the fan_mode_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#fan_mode_state_template", "type": "string" }, "fan_mode_state_topic": { "description": "The MQTT topic to subscribe for changes of the HVAC fan mode. If this is not set, the fan mode works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#fan_mode_state_topic", "type": "string" }, "fan_modes": { "description": "A list of supported fan modes.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#fan_modes", "type": "array", "items": { "type": "string" } }, "initial": { "type": "integer", "description": "Set the initial target temperature.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#initial" }, "max_temp": { "description": "Maximum set point available.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#max_temp", "type": "number" }, "min_temp": { "description": "Minimum set point available.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#min_temp", "type": "number" }, "mode_command_template": { "description": "A template to render the value sent to the mode_command_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#mode_command_template", "type": "string" }, "mode_command_topic": { "description": "The MQTT topic to publish commands to change the HVAC operation mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#mode_command_topic", "type": "string" }, "mode_state_template": { "description": "A template to render the value received on the mode_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#mode_state_template", "type": "string" }, "mode_state_topic": { "description": "The MQTT topic to subscribe for changes of the HVAC operation mode. If this is not set, the operation mode works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#mode_state_topic", "type": "string" }, "modes": { "description": "A list of supported modes. Needs to be a subset of the default values.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#modes", "type": "array", "items": { "enum": ["auto", "cool", "dry", "fan_only", "heat", "off"], "type": "string" } }, "name": { "description": "The name of the HVAC.\nhttps://www.home-assistant.io/integrations/climate.mqtt#name", "type": "string" }, "payload_off": { "description": "The payload that represents disabled state.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#payload_off", "type": "string" }, "payload_on": { "description": "The payload that represents enabled state.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#payload_on", "type": "string" }, "power_command_topic": { "description": "The MQTT topic to publish commands to change the power state. This is useful if your device has a separate power toggle in addition to mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#power_command_topic", "type": "string" }, "precision": { "description": "The desired precision for this device. Can be used to match your actual thermostat’s precision. Supported values are 0.1, 0.5 and 1.0.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#precision", "enum": [0.1, 0.5, 1], "type": "number" }, "preset_mode_command_template": { "description": "Defines a template to generate the payload to send to preset_mode_command_topic.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#preset_mode_command_template", "type": "string" }, "preset_mode_command_topic": { "description": "The MQTT topic to publish commands to change the preset mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#preset_mode_command_topic", "type": "string" }, "preset_mode_state_topic": { "description": "The MQTT topic subscribed to receive climate speed based on presets. When preset ‘none’ is received or None the preset_mode will be reset.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#preset_mode_state_topic", "type": "string" }, "preset_mode_value_template": { "description": "Defines a template to extract the preset_mode value from the payload received on preset_mode_state_topic.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#preset_mode_value_template", "type": "string" }, "preset_modes": { "description": "List of preset modes this climate is supporting. Common examples include eco, away, boost, comfort, home, sleep and activity.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#preset_modes", "type": "array", "items": { "type": "string" } }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "Defines if published messages should have the retain flag set.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#retain", "type": "boolean" }, "swing_mode_command_template": { "description": "A template to render the value sent to the swing_mode_command_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#swing_mode_command_template", "type": "string" }, "swing_mode_command_topic": { "description": "The MQTT topic to publish commands to change the swing mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#swing_mode_command_topic", "type": "string" }, "swing_mode_state_template": { "description": "A template to render the value received on the swing_mode_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#swing_mode_state_template", "type": "string" }, "swing_mode_state_topic": { "description": "The MQTT topic to subscribe for changes of the HVAC swing mode. If this is not set, the swing mode works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#swing_mode_state_topic", "type": "string" }, "swing_modes": { "description": "A list of supported swing modes.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#swing_modes", "type": "array", "items": { "type": "string" } }, "temperature_command_template": { "description": "A template to render the value sent to the temperature_command_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#temperature_command_template", "type": "string" }, "temperature_command_topic": { "description": "The MQTT topic to publish commands to change the target temperature.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_command_topic", "type": "string" }, "temperature_high_command_template": { "description": "A template to render the value sent to the temperature_high_command_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#temperature_high_command_template", "type": "string" }, "temperature_high_command_topic": { "description": "The MQTT topic to publish commands to change the high target temperature.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_high_command_topic", "type": "string" }, "temperature_high_state_template": { "description": "A template to render the value received on the temperature_high_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_high_state_template", "type": "string" }, "temperature_high_state_topic": { "description": "The MQTT topic to subscribe for changes in the target high temperature. If this is not set, the target high temperature works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_high_state_topic", "type": "string" }, "temperature_low_command_template": { "description": "A template to render the value sent to the temperature_high_command_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt/#temperature_high_command_template", "type": "string" }, "temperature_low_command_topic": { "description": "The MQTT topic to publish commands to change the target low temperature.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_low_command_topic", "type": "string" }, "temperature_low_state_template": { "description": "A template to render the value received on the temperature_low_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_low_state_template", "type": "string" }, "temperature_low_state_topic": { "description": "The MQTT topic to subscribe for changes in the target low temperature. If this is not set, the target low temperature works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_low_state_topic", "type": "string" }, "temperature_state_template": { "description": "A template to render the value received on the temperature_state_topic with.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_state_template", "type": "string" }, "temperature_state_topic": { "description": "The MQTT topic to subscribe for changes in the target temperature. If this is not set, the target temperature works in optimistic mode.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_state_topic", "type": "string" }, "temperature_unit": { "description": "Defines the temperature unit of the device, C or F. If this is not set, the temperature unit is set to the system temperature unit.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temperature_unit", "enum": ["C", "F"], "type": "string" }, "temp_step": { "description": "Step size for temperature set point.\nhttps://www.home-assistant.io/integrations/climate.mqtt#temp_step", "type": "number" }, "value_template": { "description": "Default template to render the payloads on all *_state_topics with.\nhttps://www.home-assistant.io/integrations/climate.mqtt#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false }, "CoverItem": { "type": "object", "properties": { "command_topic": { "description": "The MQTT topic to publish commands to control the cover.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#command_topic", "type": "string" }, "device_class": { "description": "Sets the class of the device, changing the device state and icon that is displayed on the frontend.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#device_class", "enum": [ "awning", "blind", "curtain", "damper", "door", "garage", "gate", "shade", "shutter", "window" ], "type": "string" }, "name": { "description": "The name of the MQTT cover.\nhttps://www.home-assistant.io/integrations/cover.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines if switch works in optimistic mode.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#optimistic", "type": "boolean" }, "payload_close": { "description": "The command payload that closes the cover.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#payload_close", "type": "string" }, "payload_open": { "description": "The command payload that opens the cover.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#payload_open", "type": "string" }, "payload_stop": { "description": "The command payload that stops the cover.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#payload_stop", "type": "string" }, "position_closed": { "type": "integer", "description": "Number which represents closed position.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#position_closed" }, "position_open": { "type": "integer", "description": "Number which represents open position.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#position_open" }, "position_template": { "description": "Defines a template that can be used to extract the payload for the `position_topic` topic.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#position_template", "type": "string" }, "position_topic": { "description": "The MQTT topic subscribed to receive cover position messages. If position_topic is set state_topic is ignored.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#position_topic", "type": "string" }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "Defines if published messages should have the retain flag set.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#retain", "type": "boolean" }, "set_position_template": { "description": "Defines a template to define the position to be sent to the set_position_topic topic.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#set_position_template", "type": "string" }, "set_position_topic": { "description": "The MQTT topic to publish position commands to. You need to set position_topic as well if you want to use position topic.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#set_position_topic", "type": "string" }, "state_closed": { "description": "The payload that represents the closed state.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#state_closed", "type": "string" }, "state_closing": { "description": "The payload that represents the closing state.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#state_closing", "type": "string" }, "state_open": { "description": "The payload that represents the open state.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#state_open", "type": "string" }, "state_opening": { "description": "The payload that represents the opening state.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#state_opening", "type": "string" }, "state_stopped": { "description": "The payload that represents the stopped state (for covers that do not report open/closed state).\nhttps://www.home-assistant.io/integrations/cover.mqtt/#state_stopped", "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive cover state messages. Use only if not using position_topic. State topic can only read open/close state.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#state_topic", "type": "string" }, "tilt_closed_value": { "type": "integer", "description": "The value that will be sent on a close_cover_tilt command.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_closed_value" }, "tilt_command_template": { "description": "Defines a template that can be used to extract the payload for the `tilt_command_topic` topic.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_command_template", "type": "string" }, "tilt_command_topic": { "description": "The MQTT topic to publish commands to control the cover tilt.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_command_topic", "type": "string" }, "tilt_max": { "type": "integer", "description": "The maximum tilt value.\n https://www.home-assistant.io/integrations/cover.mqtt/#tilt_max" }, "tilt_min": { "type": "integer", "description": "The minimum tilt value.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_min" }, "tilt_opened_value": { "type": "integer", "description": "The value that will be sent on an open_cover_tilt command.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_opened_value" }, "tilt_optimistic": { "description": "Flag that determines if tilt works in optimistic mode.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_optimistic", "type": "boolean" }, "tilt_status_template": { "description": "Defines a template that can be used to extract the payload for the tilt_status_topic topic.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_status_template", "type": "string" }, "tilt_status_topic": { "description": "The MQTT topic subscribed to receive tilt status update values.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#tilt_status_topic", "type": "string" }, "value_template": { "description": "Defines a template to extract a value from the payload.\nhttps://www.home-assistant.io/integrations/cover.mqtt/#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false }, "DeviceTrackerItem": { "type": "object", "properties": { "devices": { "description": "List of devices with their topic.\nhttps://www.home-assistant.io/integrations/device_tracker.mqtt/#devices", "type": "object", "additionalProperties": { "type": "string" } }, "payload_home": { "description": "The payload value that represents the ‘home’ state for the device.\nhttps://www.home-assistant.io/integrations/device_tracker.mqtt/#payload_home", "type": "string" }, "payload_not_home": { "description": "The payload value that represents the ‘not_home’ state for the device.\nhttps://www.home-assistant.io/integrations/device_tracker.mqtt/#payload_not_home", "type": "string" }, "qos": { "description": "The maximum QoS level to be used when receiving messages.\nhttps://www.home-assistant.io/integrations/device_tracker.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "source_type": { "description": "Attribute of a device tracker that affects state when being used to track a person. Valid options are gps, router, bluetooth, or bluetooth_le.\nhttps://www.home-assistant.io/integrations/device_tracker.mqtt/#source_type", "enum": ["bluetooth", "bluetooth_le", "gps", "router"], "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["devices"] }, "FanItem": { "type": "object", "properties": { "command_topic": { "description": "The MQTT topic to publish commands to change the fan state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#command_topic", "type": "string" }, "name": { "description": "The name of the MQTT fan.\nhttps://www.home-assistant.io/integrations/fan.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines if fan works in optimistic mode.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#optimistic", "type": "boolean" }, "oscillation_command_template": { "description": "Defines a template to generate the payload to send to oscillation_command_topic.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#oscillation_value_template", "type": "string" }, "oscillation_command_topic": { "description": "The MQTT topic to publish commands to change the oscillation state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#oscillation_command_topic", "type": "string" }, "oscillation_state_topic": { "description": "The MQTT topic subscribed to receive oscillation state updates.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#oscillation_state_topic", "type": "string" }, "oscillation_value_template": { "description": "Defines a template to extract a value from the oscillation.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#oscillation_value_template", "type": "string" }, "payload_off": { "description": "The payload that represents the stop state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#payload_off", "type": "string" }, "payload_on": { "description": "The payload that represents the running state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#payload_on", "type": "string" }, "payload_oscillation_off": { "description": "The payload that represents the oscillation off state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#payload_oscillation_off", "type": "string" }, "payload_oscillation_on": { "description": "The payload that represents the oscillation on state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#payload_oscillation_on", "type": "string" }, "payload_reset_percentage": { "description": "A special payload that resets the `percentage` state attribute to `None` when received at the `percentage_state_topic`.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#payload_reset_percentage", "type": "string" }, "payload_reset_preset_mode": { "description": "A special payload that resets the `preset_mode` state attribute to `None` when received at the `preset_mode_state_topic`.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#payload_reset_preset_mode", "type": "string" }, "percentage_command_template": { "description": "Defines a template to generate the payload to send to `percentage_command_topic`.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#percentage_command_template", "type": "string" }, "percentage_command_topic": { "description": "The MQTT topic to publish commands to change the fan speed state based on a percentage.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#percentage_command_topic", "type": "string" }, "percentage_state_topic": { "description": "The MQTT topic subscribed to receive fan speed based on percentage.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#percentage_state_topic", "type": "string" }, "percentage_value_template": { "description": "Defines a template to extract a value from fan percentage speed.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#percentage_value_template", "type": "string" }, "preset_mode_command_template": { "description": "Defines a template to generate the payload to send to preset_mode_command_topic.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#preset_mode_command_template", "type": "string" }, "preset_mode_command_topic": { "description": "The MQTT topic to publish commands to change the preset mode.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#preset_mode_command_topic", "type": "string" }, "preset_mode_state_topic": { "description": "The MQTT topic subscribed to receive fan speed based on presets.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#preset_mode_state_topic", "type": "string" }, "preset_mode_value_template": { "description": "Defines a template to extract a value from the preset_mode payload.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#preset_mode_value_template", "type": "string" }, "preset_modes": { "description": "List of preset modes this fan is capable of running at.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#preset_modes", "type": "array", "items": { "type": "string" } }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "Defines if published messages should have the retain flag set.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#retain", "type": "boolean" }, "speed_range_min": { "type": "integer", "minimum": 0, "description": "The minimum of numeric output range (off not included, so speed_range_min - 1 represents 0%).\nhttps://www.home-assistant.io/integrations/fan.mqtt/#speed_range_min" }, "speed_range_max": { "type": "integer", "minimum": 0, "description": "The maximum of numeric output range (representing 100%).\nhttps://www.home-assistant.io/integrations/fan.mqtt/#speed_range_max" }, "state_topic": { "description": "The MQTT topic subscribed to receive state updates.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#state_topic", "type": "string" }, "state_value_template": { "description": "Defines a template to extract a value from the state.\nhttps://www.home-assistant.io/integrations/fan.mqtt/#state_value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic"] }, "ImageItem_1": { "type": "object", "properties": { "name": { "description": "The name of the MQTT image.\nhttps://www.home-assistant.io/integrations/image.mqtt#name", "type": "string" }, "content_type": { "description": "The content type of an image data message received on image_topic.\nhttps://www.home-assistant.io/integrations/image.mqtt#content_type", "type": "string" }, "image_encoding": { "description": "The encoding of the image payloads received.\nhttps://www.home-assistant.io/integrations/image.mqtt#image_encoding", "type": "string" }, "image_topic": { "description": "The MQTT topic to subscribe to receive the image payload of the image to be downloaded.\nhttps://www.home-assistant.io/integrations/image.mqtt#image_topic", "type": "string" }, "url_template": { "description": "Defines a template to extract the image URL from a message received at url_topic.\nhttps://www.home-assistant.io/integrations/image.mqtt#url_template", "type": "string" }, "url_topic": { "description": "The MQTT topic to subscribe to receive an image URL.\nhttps://www.home-assistant.io/integrations/image.mqtt#url_topic", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false }, "LightDefaultItem": { "type": "object", "properties": { "schema": { "description": "The mqtt light platform with default schema lets you control your MQTT enabled lights. It supports setting brightness, color temperature, effects, flashing, on/off, RGB colors, transitions, XY colors and white values.\nhttps://www.home-assistant.io/integrations/light.mqtt/#default-schema---configuration", "const": "default", "type": "string" }, "brightness_command_topic": { "description": "The MQTT topic to publish commands to change the light’s brightness.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness_command_topic", "type": "string" }, "brightness_scale": { "type": "integer", "description": "Defines the maximum brightness value (i.e., 100%) of the MQTT device.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness_scale" }, "brightness_state_topic": { "description": "The MQTT topic subscribed to receive brightness state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness_state_topic", "type": "string" }, "brightness_value_template": { "description": "Defines a template to extract the brightness value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness_value_template", "type": "string" }, "color_mode_state_topic": { "description": "The MQTT topic subscribed to receive color mode updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_mode_state_topic", "type": "string" }, "color_mode_value_template": { "description": "Defines a template to extract the color mode.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_mode_value_template", "type": "string" }, "color_temp_command_template": { "description": "Defines a template to compose message which will be sent to color_temp_command_topic. Available variables: value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_temp_command_template", "type": "string" }, "color_temp_command_topic": { "description": "The MQTT topic to publish commands to change the light’s color temperature state. The color temperature command slider has a range of 153 to 500 mireds (micro reciprocal degrees).\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_temp_command_topic", "type": "string" }, "color_temp_state_topic": { "description": "The MQTT topic subscribed to receive color temperature state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_temp_state_topic", "type": "string" }, "color_temp_value_template": { "description": "Defines a template to extract the color temperature value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_temp_value_template", "type": "string" }, "command_topic": { "description": "The MQTT topic to publish commands to change the switch state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#command_topic", "type": "string" }, "effect_command_topic": { "description": "The MQTT topic to publish commands to change the light’s effect state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_command_topic", "type": "string" }, "effect_list": { "description": "The list of effects the light supports.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_list", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "effect_state_topic": { "description": "The MQTT topic subscribed to receive effect state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_state_topic", "type": "string" }, "effect_value_template": { "description": "Defines a template to extract the effect value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_value_template", "type": "string" }, "hs_command_topic": { "description": "The MQTT topic to publish commands to change the light’s color state in HS format (Hue Saturation). Range for Hue: 0° .. 360°, Range of Saturation: 0..100.\nhttps://www.home-assistant.io/integrations/light.mqtt/#hs_command_topic", "type": "string" }, "hs_state_topic": { "description": "The MQTT topic subscribed to receive color state updates in HS format.\nhttps://www.home-assistant.io/integrations/light.mqtt/#hs_state_topic", "type": "string" }, "hs_value_template": { "description": "Defines a template to extract the HS value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#hs_value_template", "type": "string" }, "max_mireds": { "type": "integer", "description": "The maximum color temperature in mireds.\nhttps://www.home-assistant.io/integrations/light.mqtt/#max_mireds" }, "min_mireds": { "type": "integer", "description": "The minimum color temperature in mireds.\nhttps://www.home-assistant.io/integrations/light.mqtt/#min_mireds" }, "name": { "description": "The name of the MQTT light.\nhttps://www.home-assistant.io/integrations/light.mqtt#name", "type": "string" }, "on_command_type": { "description": "Defines when on the payload_on is sent. Using last (the default) will send any style (brightness, color, etc) topics first and then a payload_on to the command_topic.\nhttps://www.home-assistant.io/integrations/light.mqtt/#on_command_type", "type": "string" }, "optimistic": { "description": "Flag that defines if light works in optimistic mode.\nhttps://www.home-assistant.io/integrations/light.mqtt/#optimistic", "type": "boolean" }, "payload_off": { "description": "The payload that represents disabled state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#payload_off", "type": "string" }, "payload_on": { "description": "The payload that represents enabled state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#payload_on", "type": "string" }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/light.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "Defines if published messages should have the retain flag set.\nhttps://www.home-assistant.io/integrations/light.mqtt/#retain", "type": "boolean" }, "rgb_command_template": { "description": "Defines a template to compose message which will be sent to rgb_command_topic. Available variables: red, green and blue.\nhttps://www.home-assistant.io/integrations/light.mqtt/#rgb_command_template", "type": "string" }, "rgb_command_topic": { "description": "The MQTT topic to publish commands to change the light’s RGB state. Please note that the color value sent by Home Assistant is normalized to full brightness if brightness_command_topic is set.\nhttps://www.home-assistant.io/integrations/light.mqtt/#rgb_command_topic", "type": "string" }, "rgb_state_topic": { "description": "The MQTT topic subscribed to receive RGB state updates. The expected payload is the RGB values separated by commas, for example, 255,0,127.\nhttps://www.home-assistant.io/integrations/light.mqtt/#rgb_state_topic", "type": "string" }, "rgb_value_template": { "description": "Defines a template to extract the RGB value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#rgb_value_template", "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#state_topic", "type": "string" }, "state_value_template": { "description": "Defines a template to extract a value from the state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#state_value_template", "type": "string" }, "white_command_topic": { "description": "The MQTT topic to publish commands to change the light to white mode with a given brightness.\nhttps://www.home-assistant.io/integrations/light.mqtt#white_command_topic", "type": "string" }, "white_scale": { "type": "integer", "description": "Defines the maximum white level (i.e., 100%) of the MQTT device.\nhttps://www.home-assistant.io/integrations/light.mqtt#white_scale" }, "xy_command_topic": { "description": "The MQTT topic to publish commands to change the light’s XY state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#xy_command_topic", "type": "string" }, "xy_state_topic": { "description": "The MQTT topic subscribed to receive XY state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#xy_state_topic", "type": "string" }, "xy_value_template": { "description": "Defines a template to extract the XY value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#xy_value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic"] }, "LightJSONItem": { "type": "object", "properties": { "schema": { "description": "The mqtt light platform with default schema lets you control your MQTT enabled lights. It supports setting brightness, color temperature, effects, flashing, on/off, RGB colors, transitions, XY colors and white values.\nhttps://www.home-assistant.io/integrations/light.mqtt/#json-schema---configuration", "const": "json", "type": "string" }, "brightness": { "description": "Flag that defines if the light supports brightness.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness", "type": "boolean" }, "brightness_scale": { "type": "integer", "description": "Defines the maximum brightness value (i.e., 100%) of the MQTT device.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness_scale" }, "color_mode": { "description": "Flag that defines if the light supports color modes.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color", "type": "boolean" }, "color_temp": { "description": "Flag that defines if the light supports color temperature.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_temp", "type": "boolean" }, "command_topic": { "description": "The MQTT topic to publish commands to change the switch state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#command_topic", "type": "string" }, "effect": { "description": "Flag that defines if the light supports effects.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect", "type": "boolean" }, "effect_list": { "description": "The list of effects the light supports.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_list", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "flash_time_long": { "type": "integer", "description": "The duration, in seconds, of a “long” flash.\nhttps://www.home-assistant.io/integrations/light.mqtt/#flash_time_long" }, "flash_time_short": { "type": "integer", "description": "The duration, in seconds, of a “short” flash.\nhttps://www.home-assistant.io/integrations/light.mqtt/#flash_time_short" }, "hs": { "description": "Flag that defines if the light supports HS colors.\nhttps://www.home-assistant.io/integrations/light.mqtt/#hs", "type": "boolean" }, "max_mireds": { "type": "integer", "description": "The maximum color temperature in mireds.\nhttps://www.home-assistant.io/integrations/light.mqtt/#max_mireds" }, "min_mireds": { "type": "integer", "description": "The minimum color temperature in mireds.\nhttps://www.home-assistant.io/integrations/light.mqtt/#min_mireds" }, "name": { "description": "The name of the MQTT light.\nhttps://www.home-assistant.io/integrations/light.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines if light works in optimistic mode.\nhttps://www.home-assistant.io/integrations/light.mqtt/#optimistic", "type": "boolean" }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/light.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "Defines if published messages should have the retain flag set.\nhttps://www.home-assistant.io/integrations/light.mqtt/#retain", "type": "boolean" }, "rgb": { "description": "Flag that defines if the light supports RGB colors.\nhttps://www.home-assistant.io/integrations/light.mqtt/#rgb", "type": "boolean" }, "state_topic": { "description": "The MQTT topic subscribed to receive state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#state_topic", "type": "string" }, "supported_color_modes": { "description": "A list of color modes supported by the light.\nhttps://www.home-assistant.io/integrations/light.mqtt/#supported_color_modes", "type": "array", "items": { "$ref": "#/definitions/ColorMode" } }, "white_value": { "description": "Flag that defines if the light supports white values.\nhttps://www.home-assistant.io/integrations/light.mqtt/#white_value", "type": "boolean" }, "xy": { "description": "Flag that defines if the light supports XY colors.\nhttps://www.home-assistant.io/integrations/light.mqtt/#xy", "type": "boolean" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic"] }, "ColorMode": { "description": "From: https://github.com/home-assistant/core/blob/dev/homeassistant/components/light/const.py", "enum": [ "brightness", "color_temp", "hs", "onoff", "rgb", "rgbw", "rgbww", "unknown", "white", "xy" ], "type": "string" }, "LightTemplateItem": { "type": "object", "properties": { "schema": { "description": "The mqtt light platform with default schema lets you control your MQTT enabled lights. It supports setting brightness, color temperature, effects, flashing, on/off, RGB colors, transitions, XY colors and white values.\nhttps://www.home-assistant.io/integrations/light.mqtt/#json-schema---configuration", "const": "template", "type": "string" }, "blue_template": { "description": "Template to extract blue color from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#blue_template", "type": "string" }, "brightness_template": { "description": "Template to extract brightness from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#brightness_template", "type": "string" }, "color_temp_template": { "description": "Template to extract color temperature from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#color_temp_template", "type": "string" }, "command_off_template": { "description": "The template for off state changes. Available variables: state and transition.\nhttps://www.home-assistant.io/integrations/light.mqtt/#command_off_template", "type": "string" }, "command_on_template": { "description": "The template for on state changes. Available variables: state, brightness, red, green, blue, white_value, flash, transition and effect.\nhttps://www.home-assistant.io/integrations/light.mqtt/#command_on_template", "type": "string" }, "command_topic": { "description": "The MQTT topic to publish commands to change the switch state.\nhttps://www.home-assistant.io/integrations/light.mqtt/#command_topic", "type": "string" }, "effect_list": { "description": "The list of effects the light supports.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_list", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "effect_template": { "description": "Template to extract effect from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#effect_template", "type": "string" }, "green_template": { "description": "Template to extract green color from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#green_template", "type": "string" }, "max_mireds": { "type": "integer", "description": "The maximum color temperature in mireds.\nhttps://www.home-assistant.io/integrations/light.mqtt/#max_mireds" }, "min_mireds": { "type": "integer", "description": "The minimum color temperature in mireds.\nhttps://www.home-assistant.io/integrations/light.mqtt/#min_mireds" }, "name": { "description": "The name of the MQTT light.\nhttps://www.home-assistant.io/integrations/light.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines if light works in optimistic mode.\nhttps://www.home-assistant.io/integrations/light.mqtt/#optimistic", "type": "boolean" }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/light.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "red_template": { "description": "Template to extract red color from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#red_template", "type": "string" }, "state_template": { "description": "Template to extract red color from the state payload value.\nhttps://www.home-assistant.io/integrations/light.mqtt/#state_template", "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive state updates.\nhttps://www.home-assistant.io/integrations/light.mqtt/#state_topic", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": [ "command_off_template", "command_on_template", "command_topic" ] }, "LockItem": { "type": "object", "properties": { "command_topic": { "description": "The MQTT topic to publish commands to change the lock state.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#command_topic", "type": "string" }, "name": { "description": "The name of the MQTT lock.\nhttps://www.home-assistant.io/integrations/lock.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines if lock works in optimistic mode.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#optimistic", "type": "boolean" }, "payload_lock": { "description": "The payload that represents enabled/locked state.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#payload_lock", "type": "string" }, "payload_unlock": { "description": "The value that represents the lock to be in unlocked state.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#state_unlocked", "type": "string" }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "If the published message should have the retain flag on or not.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#retain", "type": "boolean" }, "state_locked": { "description": "The value that represents the lock to be in locked state.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#state_locked", "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive state updates.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#state_topic", "type": "string" }, "state_unlocked": { "description": "The value that represents the lock to be in unlocked state.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#state_unlocked", "type": "string" }, "value_template": { "description": "Defines a template to extract a value from the payload.\nhttps://www.home-assistant.io/integrations/lock.mqtt/#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic"] }, "NumberItem_1": { "type": "object", "properties": { "command_topic": { "description": "The MQTT topic to publish commands to change the number state.\nhttps://www.home-assistant.io/integrations/number.mqtt/#command_topic", "type": "string" }, "max": { "description": "Maximum value.\nhttps://www.home-assistant.io/integrations/number.mqtt#max", "type": "number" }, "min": { "description": "Minimum value.\nhttps://www.home-assistant.io/integrations/number.mqtt#min", "type": "number" }, "name": { "description": "The name of the MQTT number.\nhttps://www.home-assistant.io/integrations/number.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines if the number works in optimistic mode.\nhttps://www.home-assistant.io/integrations/number.mqtt/#optimistic", "type": "boolean" }, "qos": { "description": "The maximum QoS level to be used when receiving and publishing messages.\nhttps://www.home-assistant.io/integrations/number.mqtt/#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "If the published message should have the retain flag on or not.\nhttps://www.home-assistant.io/integrations/number.mqtt/#retain", "type": "boolean" }, "state_topic": { "description": "The MQTT topic subscribed to receive state updates.\nhttps://www.home-assistant.io/integrations/number.mqtt/#state_topic", "type": "string" }, "step": { "description": "Step value. Smallest value `0.001`.\nhttps://www.home-assistant.io/integrations/number.mqtt/#step", "type": "number" }, "unit_of_measurement": { "description": "Defines the units of measurement, if any.\nhttps://www.home-assistant.io/integrations/number.mqtt#unit_of_measurement", "type": "string" }, "value_template": { "description": "Defines a template to extract the value.\nhttps://www.home-assistant.io/integrations/number.mqtt#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic"] }, "SelectItem_1": { "type": "object", "properties": { "command_topic": { "description": "The MQTT topic to publish commands to control the select.\nhttps://www.home-assistant.io/integrations/select.mqtt/#command_topic", "type": "string" }, "name": { "description": "The name of the MQTT select.\nhttps://www.home-assistant.io/integrations/select.mqtt#name", "type": "string" }, "optimistic": { "description": "Flag that defines the select works in optimistic mode.\nhttps://www.home-assistant.io/integrations/select.mqtt/#optimistic", "type": "boolean" }, "options": { "description": "List of options to choose from in the select.\nhttps://www.home-assistant.io/integrations/select.mqtt/#options", "type": "array", "items": { "type": "string" } }, "qos": { "description": "The maximum QoS level of the state topic.\nhttps://www.home-assistant.io/integrations/select.mqtt#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "If the published message should have the retain flag on or not.\nhttps://www.home-assistant.io/integrations/select.mqtt/#retain", "type": "boolean" }, "state_topic": { "description": "The MQTT topic subscribed to receive the select value.\nhttps://www.home-assistant.io/integrations/select.mqtt#state_topic", "type": "string" }, "value_template": { "description": "Defines a template to extract a value from the payload.\nhttps://www.home-assistant.io/integrations/select.mqtt/#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["command_topic"] }, "SensorItem_1": { "type": "object", "properties": { "device_class": { "description": "The type/class of the sensor to set the icon in the frontend.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#device_class", "enum": [ "apparent_power", "aqi", "area", "atmospheric_pressure", "battery", "blood_glucose_concentration", "carbon_dioxide", "carbon_monoxide", "conductivity", "current", "data_rate", "data_size", "date", "distance", "duration", "energy", "energy_distance", "energy_storage", "enum", "frequency", "gas", "humidity", "illuminance", "irradiance", "moisture", "monetary", "nitrogen_dioxide", "nitrogen_monoxide", "nitrous_oxide", "ozone", "ph", "pm1", "pm10", "pm25", "power", "power_factor", "precipitation", "precipitation_intensity", "pressure", "reactive_power", "signal_strength", "sound_pressure", "speed", "sulphur_dioxide", "temperature", "timestamp", "volatile_organic_compounds", "volatile_organic_compounds_parts", "voltage", "volume", "volume_flow_rate", "volume_storage", "water", "weight", "wind_speed" ], "type": "string" }, "expire_after": { "type": "integer", "minimum": 0, "description": "Defines the number of seconds after the sensor’s state expires, if it’s not updated. After expiry, the sensor’s state becomes unavailable.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#expire_after" }, "force_update": { "description": "Sends update events even if the value hasn’t changed. Useful if you want to have meaningful value graphs in history.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#expire_after", "type": "boolean" }, "last_reset_topic": { "description": "The MQTT topic subscribed to receive timestamps for when an accumulating sensor such as an energy meter was reset. If the sensor never resets, set last_reset_topic to same as state_topic and set the last_reset_value_template to a constant valid timstamp, for example UNIX epoch 0: 1970-01-01T00:00:00+00:00.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#last_reset_topic", "type": "string" }, "last_reset_value_template": { "description": "Defines a template to extract the last_reset. Available variables: entity_id. The entity_id can be used to reference the entity’s attributes.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#last_reset_value_template", "type": "string" }, "name": { "description": "The name of the MQTT sensor.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#name", "type": "string" }, "qos": { "description": "The maximum QoS level of the state topic.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#qos", "enum": [0, 1, 2], "type": "number" }, "state_class": { "description": "The state_class of the sensor.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#state_class", "enum": ["measurement", "total", "total_increasing"], "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive sensor values.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#state_topic", "type": "string" }, "unit_of_measurement": { "description": "Defines the units of measurement of the sensor, if any.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#unit_of_measurement", "type": "string" }, "value_template": { "description": "Defines a template to extract the value.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#value_template", "type": "string" }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["state_topic"] }, "VacuumItem": { "type": "object", "properties": { "schema": { "description": "The schema to use. Must be state to select the state schema.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#schema", "type": "string", "const": "state" }, "command_topic": { "description": "The MQTT topic to publish commands to control the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#command_topic", "type": "string" }, "fan_speed_list": { "description": "List of possible fan speeds for the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#fan_speed_list", "type": "array", "items": { "type": "string" } }, "fan_speed_template": { "description": "Defines a template to define the fan speed of the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#fan_speed_template", "type": "string" }, "fan_speed_topic": { "description": "The MQTT topic subscribed to receive fan speed values from the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#fan_speed_topic", "type": "string" }, "name": { "description": "The name of the MQTT vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt#name", "type": "string" }, "payload_clean_spot": { "description": "The payload to send to the command_topic to begin a spot cleaning cycle.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_clean_spot", "type": "string" }, "payload_locate": { "description": "The payload to send to the command_topic to locate the vacuum (typically plays a song).\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_locate", "type": "string" }, "payload_pause": { "description": "The payload to send to the command_topic to pause the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_pause", "type": "string" }, "payload_return_to_base": { "description": "The payload to send to the command_topic to tell the vacuum to return to base.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_return_to_base", "type": "string" }, "payload_start": { "description": "The payload to send to the command_topic to begin the cleaning cycle.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_start", "type": "string" }, "payload_stop": { "description": "The payload to send to the command_topic to stop the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_stop", "type": "string" }, "qos": { "description": "The maximum QoS level of the state topic.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "If the published message should have the retain flag on or not.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#retain", "type": "boolean" }, "send_command_topic": { "description": "The MQTT topic to publish custom commands to the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#send_command_topic", "type": "string" }, "set_fan_speed_topic": { "description": "The MQTT topic to publish commands to control the vacuum’s fan speed.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#set_fan_speed_topic", "type": "string" }, "state_topic": { "description": "The MQTT topic subscribed to receive state messages from the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#state_topic", "type": "string" }, "supported_features": { "description": "List of features that the vacuum supports (possible values are start, stop, pause, return_home, battery, status, locate, clean_spot, fan_speed, send_command).\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#supported_features", "type": "array", "items": { "type": "string" } }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false, "required": ["schema", "state_topic"] }, "VacuumLegacyItem": { "type": "object", "properties": { "schema": { "description": "The schema to use. Must be state to select the state schema.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#schema", "const": "legacy", "type": "string" }, "battery_level_template": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "battery_level_topic": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "charging_template": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "charging_topic": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "cleaning_template": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "cleaning_topic": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "command_topic": { "description": "The MQTT topic to publish commands to control the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#command_topic", "type": "string" }, "docked_template": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "docked_topic": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "error_template": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "error_topic": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "fan_speed_list": { "description": "List of possible fan speeds for the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#fan_speed_list", "type": "array", "items": { "type": "string" } }, "fan_speed_template": { "description": "Defines a template to define the fan speed of the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#fan_speed_template", "type": "string" }, "fan_speed_topic": { "description": "The MQTT topic subscribed to receive fan speed values from the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#fan_speed_topic", "type": "string" }, "name": { "description": "The name of the MQTT vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt#name", "type": "string" }, "payload_clean_spot": { "description": "The payload to send to the command_topic to begin a spot cleaning cycle.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_clean_spot", "type": "string" }, "payload_locate": { "description": "The payload to send to the command_topic to locate the vacuum (typically plays a song).\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_locate", "type": "string" }, "payload_return_to_base": { "description": "The payload to send to the command_topic to tell the vacuum to return to base.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_return_to_base", "type": "string" }, "payload_start_pause": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "payload_stop": { "description": "The payload to send to the command_topic to stop the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#payload_stop", "type": "string" }, "payload_turn_on": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "payload_turn_off": { "pattern": "DEPRECATED^", "items": { "pattern": "DEPRECATED^" }, "description": "DEPRECATED\nThis option is part of the deprecated legacy MQTT vacuum schema.\nNew installations should use the state schema as legacy is deprecated and might be removed someday in the future." }, "qos": { "description": "The maximum QoS level of the state topic.\nhttps://www.home-assistant.io/integrations/sensor.mqtt#qos", "enum": [0, 1, 2], "type": "number" }, "retain": { "description": "If the published message should have the retain flag on or not.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#retain", "type": "boolean" }, "send_command_topic": { "description": "The MQTT topic to publish custom commands to the vacuum.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#send_command_topic", "type": "string" }, "set_fan_speed_topic": { "description": "The MQTT topic to publish commands to control the vacuum’s fan speed.\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#set_fan_speed_topic", "type": "string" }, "supported_features": { "description": "List of features that the vacuum supports (possible values are start, stop, pause, return_home, battery, status, locate, clean_spot, fan_speed, send_command).\nhttps://www.home-assistant.io/integrations/vacuum.mqtt/#supported_features", "type": "array", "items": { "type": "string" } }, "availability": { "description": "A list of MQTT topics subscribed to receive availability (online/offline) updates.", "type": "array", "items": { "type": "object", "properties": { "topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "value_template": { "description": "Defines a template to extract the value for payload_available and payload_not_available.", "type": "string" } }, "additionalProperties": false, "required": ["topic"] } }, "availability_mode": { "description": "When availability is configured, this controls the conditions needed to set the entity to available. Valid entries are all, any, and latest.", "enum": ["all", "any", "latest"], "type": "string" }, "availability_template": { "description": "Defines a template to extract device’s availability from the availability_topic. To determine the devices’s availability result of this template will be compared to payload_available and payload_not_available.", "type": "string" }, "availability_topic": { "description": "The MQTT topic subscribed to receive availability (online/offline) updates.", "type": "string" }, "payload_available": { "description": "The payload that represents the available state.", "type": "string" }, "payload_not_available": { "description": "The payload that represents the unavailable state.", "type": "string" }, "device": { "description": "Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set.", "type": "object", "properties": { "configuration_url": { "description": "A link to the webpage that can manage the configuration of this device. Can be either an http://, https:// or an internal homeassistant:// URL", "type": "string" }, "connections": { "description": "A list of connections of the device to the outside world as a list of tuples.", "type": "object", "additionalProperties": { "type": "string" } }, "hw_version": { "description": "The hardware version of the device.", "type": "string" }, "identifiers": { "description": "A list of IDs that uniquely identify the device. For example a serial number.", "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "manufacturer": { "description": "The manufacturer of the device.", "type": "string" }, "model": { "description": "The model of the device.", "type": "string" }, "model_id": { "description": "The model identifier of the device.", "type": "string" }, "name": { "description": "The name of the device.", "type": "string" }, "serial_number": { "description": "The serial number of the device.", "type": "string" }, "suggested_area": { "description": "Suggest an area if the device isn’t in one yet.", "type": "string" }, "sw_version": { "description": "The firmware version of the device.", "type": "string" }, "via_device": { "description": "Identifier of a device that routes messages between this device and Home Assistant. Examples of such devices are hubs, or parent devices of a sub-device.", "type": "string" } }, "additionalProperties": false }, "enabled_by_default": { "description": "Flag which defines if the entity should be enabled when first added.", "type": "boolean" }, "entity_category": { "enum": ["config", "diagnostic"], "type": "string" }, "icon": { "description": "Icon to use for the entity created.", "type": "string" }, "json_attributes_template": { "description": "Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic.", "type": "string" }, "json_attributes_topic": { "description": "The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes.", "type": "string" }, "object_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" }, "unique_id": { "description": "An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception.", "type": "string" } }, "additionalProperties": false }, "Schema_17": { "type": "object", "properties": { "publish_topic": { "description": "Topic for publishing local events.\nhttps://www.home-assistant.io/integrations/mqtt_eventstream/#publish_topic", "type": "string" }, "subscribe_topic": { "description": "Topic to receive events from the remote server.\nhttps://www.home-assistant.io/integrations/mqtt_eventstream/#subscribe_topic", "type": "string" }, "ignore_event": { "description": "Ignore sending these events over mqtt.\nhttps://www.home-assistant.io/integrations/mqtt_eventstream/#ignore_event", "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "Schema_18": { "type": "object", "properties": { "base_topic": { "description": "Base topic used to generate the actual topic used to publish.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#base_topic", "type": "string" }, "publish_attributes": { "description": "Publish attributes of the entity as well as the state.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#publish_attributes", "type": "boolean" }, "publish_timestamps": { "description": "Publish the last_changed and last_updated timestamps for the entity.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#publish_timestamps", "type": "boolean" }, "exclude": { "description": "Configure which integrations should be excluded from the statestream\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#exclude", "type": "array", "items": { "type": "object", "properties": { "entities": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of entity ids to be excluded from the statestream.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#entities", "anyOf": [ { "type": "string", "pattern": "^.*..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } } ] }, "entity_globs": { "description": "Exclude all entities matching a listed pattern from the statestream (e.g., sensor.weather_*).\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#entity_globs", "type": "array", "items": { "type": "string" } }, "domains": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of domains to be excluded from the statestream.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#domains", "type": "array" } }, "additionalProperties": false } }, "include": { "description": "Configure which integrations should be included in the statestream. If set, all other entities will not be included.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#include", "type": "object", "properties": { "entities": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)\\s?(?:,\\s?(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_))*$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)\\.(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of entity ids to be included in the statestream.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#entities", "anyOf": [ { "type": "string", "pattern": "^.*..*$" }, { "type": "array", "items": { "type": "string", "pattern": "^.*..*$" } } ] }, "entity_globs": { "description": "Include all entities matching a listed pattern from the statestream (e.g., sensor.weather_*).\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#entity_globs", "type": "array", "items": { "type": "string" } }, "domains": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$", "items": { "pattern": "^(?!.+__)(?!_)[\\da-z_]+(?<!_)$" }, "description": "The list of domains to be excluded from the statestream.\nhttps://www.home-assistant.io/integrations/mqtt_statestream/#domains", "type": "array" } }, "additionalProperties": false } }, "additionalProperties": false, "required": ["base_topic"] }, "Schema_19": { "type": "object", "properties": { "token": { "description": "Github Personal Access Token.\nhttps://hacs.xyz/docs/configuration/legacy", "pattern": "^[0-9a-zA-Z_]{40}$", "type": "string" }, "appdaemon": { "description": "Enable tracking of AppDaemon apps.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "boolean" }, "debug": { "description": "Enable hacs debug mode.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "boolean" }, "experimental": { "description": "Boolean to enable experimental features.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "boolean" }, "frontend_repo_url": { "description": "Development option to point to the development repository of the frontend.", "type": "string" }, "frontend_repo": { "description": "Development option to point to the development repository of the frontend.", "type": "string" }, "netdaemon": { "description": "Enable tracking of NetDaemon apps.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "boolean" }, "release_limit": { "description": "Number of releases to show in the version selector.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "number" }, "sidepanel_icon": { "description": "The icon used for the sidepanel link.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "string" }, "sidepanel_title": { "description": "he name used for the sidepanel link.\nhttps://hacs.xyz/docs/configuration/legacy", "type": "string" } }, "additionalProperties": false, "required": ["token"] } }, "$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