From e3ed4eeb76c18ad594565597a66e5db55bb5e5b7 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen <balloob@gmail.com>
Date: Wed, 28 Sep 2022 17:09:53 -0400
Subject: [PATCH] Add Denon brand (#79230)

---
 homeassistant/brands/denon.json           |  5 ++++
 homeassistant/generated/integrations.json | 31 +++++++++++++----------
 script/hassfest/brand.py                  |  7 +++--
 3 files changed, 26 insertions(+), 17 deletions(-)
 create mode 100644 homeassistant/brands/denon.json

diff --git a/homeassistant/brands/denon.json b/homeassistant/brands/denon.json
new file mode 100644
index 00000000000..a60750e1a31
--- /dev/null
+++ b/homeassistant/brands/denon.json
@@ -0,0 +1,5 @@
+{
+  "domain": "denon",
+  "name": "Denon",
+  "integrations": ["denon", "denonavr", "heos"]
+}
diff --git a/homeassistant/generated/integrations.json b/homeassistant/generated/integrations.json
index 790d1cd9c3e..c0891bea0a2 100644
--- a/homeassistant/generated/integrations.json
+++ b/homeassistant/generated/integrations.json
@@ -805,14 +805,24 @@
       "iot_class": "calculated"
     },
     "denon": {
-      "config_flow": false,
-      "iot_class": "local_polling",
-      "name": "Denon Network Receivers"
-    },
-    "denonavr": {
-      "config_flow": true,
-      "iot_class": "local_polling",
-      "name": "Denon AVR Network Receivers"
+      "name": "Denon",
+      "integrations": {
+        "denon": {
+          "config_flow": false,
+          "iot_class": "local_polling",
+          "name": "Denon Network Receivers"
+        },
+        "denonavr": {
+          "config_flow": true,
+          "iot_class": "local_polling",
+          "name": "Denon AVR Network Receivers"
+        },
+        "heos": {
+          "config_flow": true,
+          "iot_class": "local_push",
+          "name": "Denon HEOS"
+        }
+      }
     },
     "deutsche_bahn": {
       "config_flow": false,
@@ -1770,11 +1780,6 @@
       "iot_class": "local_polling",
       "name": "Heatmiser"
     },
-    "heos": {
-      "config_flow": true,
-      "iot_class": "local_push",
-      "name": "Denon HEOS"
-    },
     "here_travel_time": {
       "config_flow": true,
       "iot_class": "cloud_polling",
diff --git a/script/hassfest/brand.py b/script/hassfest/brand.py
index 80e2495573e..c35f50599ff 100644
--- a/script/hassfest/brand.py
+++ b/script/hassfest/brand.py
@@ -38,7 +38,7 @@ def _validate_brand(
     if not brand.integrations and not brand.iot_standards:
         config.add_error(
             "brand",
-            f"Invalid brand file {brand.path.name}: At least one of integrations or "
+            f"{brand.path.name}: At least one of integrations or "
             "iot_standards must be non-empty",
         )
 
@@ -47,8 +47,7 @@ def _validate_brand(
             if sub_integration not in integrations:
                 config.add_error(
                     "brand",
-                    f"Invalid brand file {brand.path.name}: Can't add non core domain "
-                    f"'{sub_integration}' to 'integrations'",
+                    f"{brand.path.name}: References unknown integration {sub_integration}",
                 )
 
     if brand.domain in integrations and (
@@ -56,7 +55,7 @@ def _validate_brand(
     ):
         config.add_error(
             "brand",
-            f"Invalid brand file {brand.path.name}: Brand '{brand.brand['domain']}' "
+            f"{brand.path.name}: Brand '{brand.brand['domain']}' "
             f"is an integration but is missing in the brand's 'integrations' list'",
         )
 
-- 
GitLab