diff --git a/homeassistant/components/binary_sensor/strings.json b/homeassistant/components/binary_sensor/strings.json index a96808d68a35a50f43ab9cfd4a5b85ea8d774ea8..eb97b370105032d213ee4c0ec66068b02eec2b96 100644 --- a/homeassistant/components/binary_sensor/strings.json +++ b/homeassistant/components/binary_sensor/strings.json @@ -207,5 +207,18 @@ "off": "[%key:common::state::off%]", "on": "[%key:common::state::on%]" } + }, + "device_class": { + "cold": "cold", + "gas": "gas", + "heat": "heat", + "moisture": "moisture", + "motion": "motion", + "occupancy": "occupancy", + "power": "power", + "problem": "problem", + "smoke": "smoke", + "sound": "sound", + "vibration": "vibration" } } \ No newline at end of file diff --git a/script/hassfest/translations.py b/script/hassfest/translations.py index e24b37d71d90a8212229f0596bac202cf0bbbb41..841638a971808cd7299fd17c7c395d8c147ff80f 100644 --- a/script/hassfest/translations.py +++ b/script/hassfest/translations.py @@ -196,7 +196,7 @@ def gen_platform_strings_schema(config: Config, integration: Integration): """ def device_class_validator(value): - """Key validator for platorm states. + """Key validator for platform states. Platform states are only allowed to provide states for device classes they prefix. """ @@ -246,6 +246,14 @@ def validate_translation_file(config: Config, integration: Integration, all_stri strings_schema = gen_auth_schema(config, integration) elif integration.domain == "onboarding": strings_schema = ONBOARDING_SCHEMA + elif integration.domain == "binary_sensor": + strings_schema = gen_strings_schema(config, integration).extend( + { + vol.Optional("device_class"): cv.schema_with_slug_keys( + cv.string_with_no_html, slug_validator=vol.Any("_", cv.slug) + ) + } + ) else: strings_schema = gen_strings_schema(config, integration)