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)