Skip to content

Releases: tiejiang29/bemfa

v2.3.0

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 16:09

v2.3.0 修复巴法云 API 成功码识别问题

修复

  • 巴法云旧版 API 更新了返回码,现在返回 5723007(创建成功)、5733007(删除成功)、5743007(更新成功)
  • 之前这些新码被误判为失败,导致触发不必要的 fallback 到新版 API,进而产生 code=40004 Uid or topic err 等误导性错误日志
  • 操作实际上已经成功,但日志显示失败,造成困扰

影响范围

  • 创建/删除/重命名 Topic 时的日志不再出现误报
  • 不再因误判而触发新版 API fallback,避免重复操作

v2.2.1

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 14:44

v2.2.1 修复缺失的插座类型

修复

  • 补充巴法云 001 插座类型(Plug),之前类型选择器中缺少此选项
  • 插座类型协议与开关一致,但语音助手会识别为"插座",适合智能插座等设备

修改文件

  • const.py:TopicSuffix 新增 PLUG = "001",BEMFA_TYPE_MAP 新增 "插座 (Plug)"
  • manifest.json:版本号更新至 2.2.1

v2.2.0

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 14:30

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_DOMAINS
  • sync_switch.py:新增 InputButton 同步类
  • const.py:将 input_button 添加到 DOMAIN_TYPE_MAP
  • manifest.json:版本号更新至 2.2.0

v2.1.0

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 14:08

v2.1.0 - 优化添加页面布局 + 编辑支持修改类型

添加页面优化

  • 使用序号键(名称_N / 类型_N)替代 entity_id 键,显示更清晰
  • 描述区展示 Markdown 参考表格(序号 / 实体名称 / HA类型 / 默认巴法云类型)
  • 类型决定巴法云设备分类,影响语音控制命令

编辑页面新增

  • 新增巴法云设备类型选择器,支持修改已同步实体的类型
  • 类型变更时自动处理:删除旧 topic → 创建新 topic → 迁移配置
  • 例如:编辑时将开关类型改为灯类型,语音说「关闭所有灯」即可关闭

翻译更新

  • 所有 sync_config 步骤添加 type 字段翻译(中/英)

v2.0.0

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 13:48

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 - 添加实体时支持实时搜索

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 13:15

新功能

添加实体时支持实时搜索

将实体选择器从 SelectSelector(checkbox 列表)换成了 HA 原生的 EntitySelector,自带实时搜索下拉框。

  • 实时搜索:输入关键字立刻过滤,如输入"客厅"或"light"即时筛选
  • 域名过滤:只显示支持的设备类型(灯、开关、窗帘、风扇、空调、传感器)
  • 自动排除:已同步到巴法云的实体自动隐藏
  • 多选支持:仍然支持批量选择

v1.8.0 - 批量添加时所有名称在同一页面设置

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 13:03

新功能

批量添加时所有实体名称在同一页面设置

之前:选5个实体 → 弹5次配置页面,每次只能设一个名称

现在:选5个实体 → 一个页面显示5个名称输入框,一次设完

  • 每个输入框预填 HA 实体的友好名称
  • 字段标签为 entity_id(如 light_living_room → 显示为 Light living room
  • 简单类型(灯、开关、窗帘、风扇)填完名称直接创建
  • 复杂类型(空调、传感器)名称已预填,再逐个配置额外参数

其他修复(延续自 v1.7.x)

  • 添加/删除时不再默认勾选第一项
  • API 策略:所有操作优先用旧版 API,新版备选

v1.7.4 - 修复添加流程 UI 问题

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 12:57

修复内容

1. 添加/删除时不再默认勾选第一项

之前使用 vol.Required 导致多选列表第一项默认被勾选,容易误操作。
现在改为 vol.Optional(default=[]) ,默认不勾选任何项。

2. 恢复添加时的名称设置步骤

之前批量添加时,灯、开关、窗帘等简单类型直接用 HA 默认名称创建,
跳过了名称配置步骤。现在恢复为:每个选中的实体都会弹出配置页面
可以设置名称(以及其他参数),与原始版本行为一致。

批量选择后仍然会逐个配置,但会显示"还有 N 个实体待配置"提示,
方便了解进度。

v1.7.3 - 修复 API 创建/删除失败问题

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 12:50

修复内容

根因分析

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

Choose a tag to compare

@tiejiang29 tiejiang29 released this 03 Jun 11:52

修复

  • 严格按照官方文档调整 API 接口(文档地址
  • 显式设置 Content-Type: application/json; charset=utf-8
  • 40006(设备已存在)视为成功
  • 增加完整的请求 payload 调试日志
  • 移除旧 API 回退,只使用 pro.bemfa.com 新版 API

诊断 40000 错误

如果创建仍然失败,请在 HA 日志中搜索:

  • Create topic request: URL=... payload=... — 完整请求内容
  • 把这段日志发给我,我帮你分析