From cfabc390f318445ba829c7672405500d0b53b321 Mon Sep 17 00:00:00 2001 From: "yangsiyuan.rengar" Date: Fri, 6 Feb 2026 14:51:49 +0800 Subject: [PATCH] fix: write lua files with utf-8 encoding,the env as below:haos 17.0,core 2026.1.3 --- custom_components/midea_auto_cloud/__init__.py | 4 ++-- custom_components/midea_auto_cloud/core/cloud.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_components/midea_auto_cloud/__init__.py b/custom_components/midea_auto_cloud/__init__.py index 26b7ac2..3f671c3 100644 --- a/custom_components/midea_auto_cloud/__init__.py +++ b/custom_components/midea_auto_cloud/__init__.py @@ -172,7 +172,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType): from .const import BIT_LUA bit_lua = base64.b64decode(BIT_LUA.encode("utf-8")).decode("utf-8") try: - with open(bit, "wt") as fp: + with open(bit, "wt", encoding="utf-8") as fp: fp.write(bit_lua) except PermissionError as e: MideaLogger.error(f"Failed to create bit.lua at {bit}: {e}") @@ -180,7 +180,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType): import tempfile temp_dir = tempfile.gettempdir() bit = os.path.join(temp_dir, "bit.lua") - with open(bit, "wt") as fp: + with open(bit, "wt", encoding="utf-8") as fp: fp.write(bit_lua) MideaLogger.warning(f"Using temporary file for bit.lua: {bit}") diff --git a/custom_components/midea_auto_cloud/core/cloud.py b/custom_components/midea_auto_cloud/core/cloud.py index ef1f9cf..6d7c10f 100644 --- a/custom_components/midea_auto_cloud/core/cloud.py +++ b/custom_components/midea_auto_cloud/core/cloud.py @@ -492,7 +492,7 @@ class MeijuCloud(MideaCloud): self._security.aes_decrypt_with_fixed_key(lua)) stream = stream.replace("\r\n", "\n") fnm = f"{path}/{response['fileName']}" - async with aiofiles.open(fnm, "w") as fp: + async with aiofiles.open(fnm, "w", encoding="utf-8") as fp: await fp.write(stream) return fnm @@ -744,7 +744,7 @@ class MSmartHomeCloud(MideaCloud): self._security.aes_decrypt_with_fixed_key(lua)) stream = stream.replace("\r\n", "\n") fnm = f"{path}/{response['fileName']}" - async with aiofiles.open(fnm, "w") as fp: + async with aiofiles.open(fnm, "w", encoding="utf-8") as fp: await fp.write(stream) return fnm