Releases: tiejiang29/bemfa
Releases · tiejiang29/bemfa
Release list
v2.3.0
v2.3.0 修复巴法云 API 成功码识别问题
修复
- 巴法云旧版 API 更新了返回码,现在返回
5723007(创建成功)、5733007(删除成功)、5743007(更新成功) - 之前这些新码被误判为失败,导致触发不必要的 fallback 到新版 API,进而产生
code=40004 Uid or topic err等误导性错误日志 - 操作实际上已经成功,但日志显示失败,造成困扰
影响范围
- 创建/删除/重命名 Topic 时的日志不再出现误报
- 不再因误判而触发新版 API fallback,避免重复操作
v2.2.1
v2.2.1 修复缺失的插座类型
修复
- 补充巴法云
001插座类型(Plug),之前类型选择器中缺少此选项 - 插座类型协议与开关一致,但语音助手会识别为"插座",适合智能插座等设备
修改文件
const.py:TopicSuffix 新增 PLUG = "001",BEMFA_TYPE_MAP 新增 "插座 (Plug)"manifest.json:版本号更新至 2.2.1
v2.2.0
v2.2.0 新增 input 类型支持
新功能
- input_boolean 支持:修复了 input_boolean 在同步层已支持但 UI 中无法选择的问题,现在可以在配置流程中直接添加 input_boolean 实体
- input_button 支持:新增 InputButton 同步类,将 input_button 映射为巴法云开关类型,类似于 Scene 的处理方式(始终报告 OFF,收到语音"打开"命令时触发 press 服务)
修改文件
config_flow.py:将 input_boolean、input_button 添加到 _SUPPORTED_DOMAINSsync_switch.py:新增 InputButton 同步类const.py:将 input_button 添加到 DOMAIN_TYPE_MAPmanifest.json:版本号更新至 2.2.0
v2.1.0
v2.1.0 - 优化添加页面布局 + 编辑支持修改类型
添加页面优化
- 使用序号键(名称_N / 类型_N)替代 entity_id 键,显示更清晰
- 描述区展示 Markdown 参考表格(序号 / 实体名称 / HA类型 / 默认巴法云类型)
- 类型决定巴法云设备分类,影响语音控制命令
编辑页面新增
- 新增巴法云设备类型选择器,支持修改已同步实体的类型
- 类型变更时自动处理:删除旧 topic → 创建新 topic → 迁移配置
- 例如:编辑时将开关类型改为灯类型,语音说「关闭所有灯」即可关闭
翻译更新
- 所有 sync_config 步骤添加 type 字段翻译(中/英)
v2.0.0
v2.0.0 - 支持添加实体时手动选择巴法云设备类型
新功能
- 添加实体时可手动选择巴法云设备类型,默认为 HA 自动推断类型
- 例如将 switch 映射为灯类型后,语音说「关闭所有灯」也会关闭这些开关
- 类型覆盖信息持久化存储,HA 重启后自动恢复
可选类型
- 灯 (Light) - 002
- 风扇 (Fan) - 003
- 传感器 (Sensor) - 004
- 空调 (Climate) - 005
- 开关 (Switch) - 006
- 窗帘 (Cover) - 009
技术改动
- 新增 BEMFA_TYPE_MAP 和 DOMAIN_TYPE_MAP 类型映射常量
- sync.py 支持 topic_suffix 覆盖,设置时自动清除缓存
- 所有入口(添加/修改/删除/启动)统一应用类型覆盖
- 类型覆盖仅改变巴法云 topic 后缀(设备分类),HA 侧仍使用原始 Sync 类处理消息
v1.9.0 - 添加实体时支持实时搜索
新功能
添加实体时支持实时搜索
将实体选择器从 SelectSelector(checkbox 列表)换成了 HA 原生的 EntitySelector,自带实时搜索下拉框。
- 实时搜索:输入关键字立刻过滤,如输入"客厅"或"light"即时筛选
- 域名过滤:只显示支持的设备类型(灯、开关、窗帘、风扇、空调、传感器)
- 自动排除:已同步到巴法云的实体自动隐藏
- 多选支持:仍然支持批量选择
v1.8.0 - 批量添加时所有名称在同一页面设置
新功能
批量添加时所有实体名称在同一页面设置
之前:选5个实体 → 弹5次配置页面,每次只能设一个名称
现在:选5个实体 → 一个页面显示5个名称输入框,一次设完
- 每个输入框预填 HA 实体的友好名称
- 字段标签为 entity_id(如
light_living_room→ 显示为 Light living room) - 简单类型(灯、开关、窗帘、风扇)填完名称直接创建
- 复杂类型(空调、传感器)名称已预填,再逐个配置额外参数
其他修复(延续自 v1.7.x)
- 添加/删除时不再默认勾选第一项
- API 策略:所有操作优先用旧版 API,新版备选
v1.7.4 - 修复添加流程 UI 问题
修复内容
1. 添加/删除时不再默认勾选第一项
之前使用 vol.Required 导致多选列表第一项默认被勾选,容易误操作。
现在改为 vol.Optional(default=[]) ,默认不勾选任何项。
2. 恢复添加时的名称设置步骤
之前批量添加时,灯、开关、窗帘等简单类型直接用 HA 默认名称创建,
跳过了名称配置步骤。现在恢复为:每个选中的实体都会弹出配置页面,
可以设置名称(以及其他参数),与原始版本行为一致。
批量选择后仍然会逐个配置,但会显示"还有 N 个实体待配置"提示,
方便了解进度。
v1.7.3 - 修复 API 创建/删除失败问题
修复内容
根因分析
v1.7.0 将 API 端点从旧版 api.bemfa.com(form-data)切换到新版 pro.bemfa.com(JSON),导致创建和删除 Topic 时返回 40000 错误。Topic 名称格式变化(MD5 → entity_id)不是问题原因。
修复策略
统一所有 API 操作策略:优先旧版,新版备选
- 所有操作(创建/删除/获取/重命名)都优先使用旧版
api.bemfa.com(form-data),因为旧版 API 在 v1.7.0 之前已验证可靠 - 仅在旧版 API 失败时,回退到官方文档新 API
| 操作 | 优先使用 | 备选 |
|---|---|---|
| 创建 | api.bemfa.com (form-data) |
pro.bemfa.com (JSON) |
| 删除 | api.bemfa.com (form-data) |
pro.bemfa.com (JSON) |
| 获取 | api.bemfa.com (form-data) |
apis.bemfa.com (JSON) |
| 重命名 | api.bemfa.com (form-data) |
apis.bemfa.com (JSON) |
v1.7.2
修复
- 严格按照官方文档调整 API 接口(文档地址)
- 显式设置 Content-Type: application/json; charset=utf-8
- 40006(设备已存在)视为成功
- 增加完整的请求 payload 调试日志
- 移除旧 API 回退,只使用 pro.bemfa.com 新版 API
诊断 40000 错误
如果创建仍然失败,请在 HA 日志中搜索:
Create topic request: URL=... payload=...— 完整请求内容- 把这段日志发给我,我帮你分析