From ea4931ca3a91920b66a747a18a2dece2c8215d4f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20BOU=C3=89?= <lboue@users.noreply.github.com>
Date: Mon, 30 Dec 2024 15:41:14 +0100
Subject: [PATCH] Bump Python Matter server to 7.0.0 (Matter 1.4) (#132502)

* Matter 1.4 rename BridgedDevice device type

BREAKING change in the client: BridgedDevice is renamed to BridgedNode in the device types with Matter 1.4

* `ColorMode` enum type is renamed to `ColorModeEnum`

* Item `ColorTemperature` renamed to `ColorTemperatureMireds`

* Update ColorControl bitmaps and attributes

* Bump Python Matter server to 7.0.0 (Matter 1.4)

* Bump requirements to Python Matter server to 7.0.0
---
 homeassistant/components/matter/adapter.py    |  4 ++--
 homeassistant/components/matter/light.py      | 12 ++++++------
 homeassistant/components/matter/manifest.json |  2 +-
 requirements_all.txt                          |  2 +-
 requirements_test_all.txt                     |  2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/homeassistant/components/matter/adapter.py b/homeassistant/components/matter/adapter.py
index 0ccd3e065ff..dad780d9a87 100644
--- a/homeassistant/components/matter/adapter.py
+++ b/homeassistant/components/matter/adapter.py
@@ -5,7 +5,7 @@ from __future__ import annotations
 from typing import TYPE_CHECKING, cast
 
 from chip.clusters import Objects as clusters
-from matter_server.client.models.device_types import BridgedDevice
+from matter_server.client.models.device_types import BridgedNode
 from matter_server.common.models import EventType, ServerInfoMessage
 
 from homeassistant.config_entries import ConfigEntry
@@ -162,7 +162,7 @@ class MatterAdapter:
             (
                 x
                 for x in endpoint.device_types
-                if x.device_type != BridgedDevice.device_type
+                if x.device_type != BridgedNode.device_type
             ),
             None,
         )
diff --git a/homeassistant/components/matter/light.py b/homeassistant/components/matter/light.py
index c9d5c688f69..5a2768d1d50 100644
--- a/homeassistant/components/matter/light.py
+++ b/homeassistant/components/matter/light.py
@@ -40,9 +40,9 @@ from .util import (
 )
 
 COLOR_MODE_MAP = {
-    clusters.ColorControl.Enums.ColorMode.kCurrentHueAndCurrentSaturation: ColorMode.HS,
-    clusters.ColorControl.Enums.ColorMode.kCurrentXAndCurrentY: ColorMode.XY,
-    clusters.ColorControl.Enums.ColorMode.kColorTemperature: ColorMode.COLOR_TEMP,
+    clusters.ColorControl.Enums.ColorModeEnum.kCurrentHueAndCurrentSaturation: ColorMode.HS,
+    clusters.ColorControl.Enums.ColorModeEnum.kCurrentXAndCurrentY: ColorMode.XY,
+    clusters.ColorControl.Enums.ColorModeEnum.kColorTemperatureMireds: ColorMode.COLOR_TEMP,
 }
 
 # there's a bug in (at least) Espressif's implementation of light transitions
@@ -355,21 +355,21 @@ class MatterLight(MatterEntity, LightEntity):
 
                 if (
                     capabilities
-                    & clusters.ColorControl.Bitmaps.ColorCapabilities.kHueSaturationSupported
+                    & clusters.ColorControl.Bitmaps.ColorCapabilitiesBitmap.kHueSaturation
                 ):
                     supported_color_modes.add(ColorMode.HS)
                     self._supports_color = True
 
                 if (
                     capabilities
-                    & clusters.ColorControl.Bitmaps.ColorCapabilities.kXYAttributesSupported
+                    & clusters.ColorControl.Bitmaps.ColorCapabilitiesBitmap.kXy
                 ):
                     supported_color_modes.add(ColorMode.XY)
                     self._supports_color = True
 
                 if (
                     capabilities
-                    & clusters.ColorControl.Bitmaps.ColorCapabilities.kColorTemperatureSupported
+                    & clusters.ColorControl.Bitmaps.ColorCapabilitiesBitmap.kColorTemperature
                 ):
                     supported_color_modes.add(ColorMode.COLOR_TEMP)
                     self._supports_color_temperature = True
diff --git a/homeassistant/components/matter/manifest.json b/homeassistant/components/matter/manifest.json
index 4573fe17401..669fa1af8c4 100644
--- a/homeassistant/components/matter/manifest.json
+++ b/homeassistant/components/matter/manifest.json
@@ -7,6 +7,6 @@
   "dependencies": ["websocket_api"],
   "documentation": "https://www.home-assistant.io/integrations/matter",
   "iot_class": "local_push",
-  "requirements": ["python-matter-server==6.6.0"],
+  "requirements": ["python-matter-server==7.0.0"],
   "zeroconf": ["_matter._tcp.local.", "_matterc._udp.local."]
 }
diff --git a/requirements_all.txt b/requirements_all.txt
index 32e83a5e34c..5515724cd67 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -2387,7 +2387,7 @@ python-linkplay==0.1.1
 # python-lirc==1.2.3
 
 # homeassistant.components.matter
-python-matter-server==6.6.0
+python-matter-server==7.0.0
 
 # homeassistant.components.xiaomi_miio
 python-miio==0.5.12
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index a98b4a3328d..1b9a228ee70 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -1920,7 +1920,7 @@ python-kasa[speedups]==0.9.0
 python-linkplay==0.1.1
 
 # homeassistant.components.matter
-python-matter-server==6.6.0
+python-matter-server==7.0.0
 
 # homeassistant.components.xiaomi_miio
 python-miio==0.5.12
-- 
GitLab