From 7188d62340ea790f898ba7612c10e89f217312d1 Mon Sep 17 00:00:00 2001
From: Felipe Martins Diel <41558831+felipediel@users.noreply.github.com>
Date: Wed, 17 Apr 2024 16:37:38 -0300
Subject: [PATCH] Bump Broadlink to 0.19.0 (#115742)

Co-authored-by: J. Nick Koston <nick@koston.org>
---
 homeassistant/components/broadlink/const.py      |  2 ++
 homeassistant/components/broadlink/manifest.json |  2 +-
 homeassistant/components/broadlink/remote.py     |  2 +-
 homeassistant/components/broadlink/switch.py     |  2 +-
 homeassistant/components/broadlink/updater.py    | 11 +++++++++++
 requirements_all.txt                             |  2 +-
 requirements_test_all.txt                        |  2 +-
 7 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/homeassistant/components/broadlink/const.py b/homeassistant/components/broadlink/const.py
index 91d4358a077..41c4964c2b3 100644
--- a/homeassistant/components/broadlink/const.py
+++ b/homeassistant/components/broadlink/const.py
@@ -9,6 +9,7 @@ DOMAINS_AND_TYPES = {
     Platform.REMOTE: {"RM4MINI", "RM4PRO", "RMMINI", "RMMINIB", "RMPRO"},
     Platform.SENSOR: {
         "A1",
+        "MP1S",
         "RM4MINI",
         "RM4PRO",
         "RMPRO",
@@ -20,6 +21,7 @@ DOMAINS_AND_TYPES = {
     Platform.SWITCH: {
         "BG1",
         "MP1",
+        "MP1S",
         "RM4MINI",
         "RM4PRO",
         "RMMINI",
diff --git a/homeassistant/components/broadlink/manifest.json b/homeassistant/components/broadlink/manifest.json
index 7fd925a2ff4..bf5dfb16584 100644
--- a/homeassistant/components/broadlink/manifest.json
+++ b/homeassistant/components/broadlink/manifest.json
@@ -38,5 +38,5 @@
   "documentation": "https://www.home-assistant.io/integrations/broadlink",
   "iot_class": "local_polling",
   "loggers": ["broadlink"],
-  "requirements": ["broadlink==0.18.3"]
+  "requirements": ["broadlink==0.19.0"]
 }
diff --git a/homeassistant/components/broadlink/remote.py b/homeassistant/components/broadlink/remote.py
index f8d903c51eb..55368e5ff59 100644
--- a/homeassistant/components/broadlink/remote.py
+++ b/homeassistant/components/broadlink/remote.py
@@ -373,7 +373,7 @@ class BroadlinkRemote(BroadlinkEntity, RemoteEntity, RestoreEntity):
             start_time = dt_util.utcnow()
             while (dt_util.utcnow() - start_time) < LEARNING_TIMEOUT:
                 await asyncio.sleep(1)
-                found = await device.async_request(device.api.check_frequency)
+                found = await device.async_request(device.api.check_frequency)[0]
                 if found:
                     break
             else:
diff --git a/homeassistant/components/broadlink/switch.py b/homeassistant/components/broadlink/switch.py
index f61e726b1d5..9cf7e3391fa 100644
--- a/homeassistant/components/broadlink/switch.py
+++ b/homeassistant/components/broadlink/switch.py
@@ -129,7 +129,7 @@ async def async_setup_entry(
     elif device.api.type == "BG1":
         switches.extend(BroadlinkBG1Slot(device, slot) for slot in range(1, 3))
 
-    elif device.api.type == "MP1":
+    elif device.api.type in {"MP1", "MP1S"}:
         switches.extend(BroadlinkMP1Slot(device, slot) for slot in range(1, 5))
 
     async_add_entities(switches)
diff --git a/homeassistant/components/broadlink/updater.py b/homeassistant/components/broadlink/updater.py
index 20b241b0d89..f678af0105f 100644
--- a/homeassistant/components/broadlink/updater.py
+++ b/homeassistant/components/broadlink/updater.py
@@ -21,6 +21,7 @@ def get_update_manager(device):
         "LB1": BroadlinkLB1UpdateManager,
         "LB2": BroadlinkLB1UpdateManager,
         "MP1": BroadlinkMP1UpdateManager,
+        "MP1S": BroadlinkMP1SUpdateManager,
         "RM4MINI": BroadlinkRMUpdateManager,
         "RM4PRO": BroadlinkRMUpdateManager,
         "RMMINI": BroadlinkRMUpdateManager,
@@ -112,6 +113,16 @@ class BroadlinkMP1UpdateManager(BroadlinkUpdateManager):
         return await self.device.async_request(self.device.api.check_power)
 
 
+class BroadlinkMP1SUpdateManager(BroadlinkUpdateManager):
+    """Manages updates for Broadlink MP1 devices."""
+
+    async def async_fetch_data(self):
+        """Fetch data from the device."""
+        power = await self.device.async_request(self.device.api.check_power)
+        sensors = await self.device.async_request(self.device.api.get_state)
+        return {**power, **sensors}
+
+
 class BroadlinkRMUpdateManager(BroadlinkUpdateManager):
     """Manages updates for Broadlink remotes."""
 
diff --git a/requirements_all.txt b/requirements_all.txt
index a9bc97d9158..66c36c7ac18 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -601,7 +601,7 @@ boto3==1.34.51
 bring-api==0.5.7
 
 # homeassistant.components.broadlink
-broadlink==0.18.3
+broadlink==0.19.0
 
 # homeassistant.components.brother
 brother==4.1.0
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index 6c40bd21e84..5bac0527854 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -512,7 +512,7 @@ boschshcpy==0.2.91
 bring-api==0.5.7
 
 # homeassistant.components.broadlink
-broadlink==0.18.3
+broadlink==0.19.0
 
 # homeassistant.components.brother
 brother==4.1.0
-- 
GitLab