修复代码问题并更新版本到 v1.0.3

- 修复 config_flow.py 中的 KeyError 风险
- 添加 MQTT broker 地址和端口验证
- 完善翻译文件,添加所有配置字段的中文翻译
- 修复 sensor.py 中的弃用 API 使用
- 改进错误处理,转换失败时设置 available 为 False
- 添加 device_info 中的 sw_version 字段
- 清理 manifest.json 中不必要的 paho-mqtt 依赖
- 修正 README.md 中的路径错误
- 更新版本号到 1.0.3
This commit is contained in:
不求圣剑
2025-10-14 11:51:13 +08:00
parent 3ccf251194
commit 18c47052e6
6 changed files with 45 additions and 21 deletions

View File

@@ -43,16 +43,30 @@ class JackeryHomeConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
errors = {}
if user_input is not None:
# 检查是否已经配置
await self.async_set_unique_id(DOMAIN)
self._abort_if_unique_id_configured()
# 验证 MQTT broker 地址
mqtt_broker = user_input.get("mqtt_broker", "").strip()
if not mqtt_broker:
errors["base"] = "mqtt_broker_required"
_LOGGER.info(f"Creating JackeryHome config entry with topic_prefix: {user_input['topic_prefix']}")
# 验证端口范围
try:
mqtt_port = int(user_input.get("mqtt_port", 1883))
if mqtt_port < 1 or mqtt_port > 65535:
errors["base"] = "invalid_port"
except (ValueError, TypeError):
errors["base"] = "invalid_port"
return self.async_create_entry(
title="JackeryHome",
data=user_input,
)
if not errors:
# 检查是否已经配置
await self.async_set_unique_id(DOMAIN)
self._abort_if_unique_id_configured()
_LOGGER.info(f"Creating JackeryHome config entry with topic_prefix: {user_input.get('topic_prefix', 'homeassistant/sensor')}")
return self.async_create_entry(
title="JackeryHome",
data=user_input,
)
return self.async_show_form(
step_id="user",