返回首页

ZS05 与 SmartIR:在 Zigbee2MQTT 中设置

在 Home Assistant 中通过 Zigbee2MQTT 将 Zigbee IR 控制器 ZS05 与 SmartIR 集成的指南。描述 MQTT 主题,Broadlink 代码转换为 Raw,YAML 配置以及在 Tosot AC 示例上的测试。

将 ZS05 无 Zigbee2MQTT 错误地连接到 SmartIR
Advertisement 728x90

ZS05 Zigbee 红外控制器通过 Zigbee2MQTT 与 SmartIR 集成指南

ZS05 Zigbee 红外控制器通过 Zigbee2MQTT 和 SmartIR 集成连接到 Home Assistant。主要挑战在于正确配置 MQTT 主题,并将红外命令从 Broadlink 格式转换为 Raw MQTT。这可以实现对空调、电视和投影仪的控制,避免 ZHA 常见的错误。

系统要求

您需要:

  • Home Assistant,最新版本。
  • Zigbee2MQTT 作为插件或在 Docker 中运行。
  • 通过 HACS 安装 SmartIR。
  • ZS05 控制器或兼容替代品。

在 Zigbee2MQTT 中添加设备

  • 在 Zigbee2MQTT 中启用 Permit Join。
  • 按住按钮重置 ZS05,直到 LED 闪烁。
  • 设备将出现在 Z2M 界面中。
  • 分配一个友好名称,例如 ir_livingroom — 这将决定 MQTT 主题 zigbee2mqtt/ir_livingroom

检查日志:设备应发布和接收消息。主题如 zigbee2mqtt/ir_livingroom 确认连接成功。

Google AdInline article slot

安装 SmartIR

在 HACS 中搜索 SmartIR 仓库,安装并重启 HA。该集成会创建 climatemedia_player 等实体,这些实体使用 MQTT 发送红外信号。

在 configuration.yaml 中正确配置

SmartIR 文档中常见的错误是 controller_data 中的子主题不正确。对于 ZS05,使用 /set/ir_code_to_send,而不是 /command

气候实体示例:

Google AdInline article slot
smartir:

climate:
  - platform: smartir
    name: 客厅空调红外
    unique_id: living_room_ac_ir
    device_code: 1200
    controller_data: zigbee2mqtt/ir_livingroom/set/ir_code_to_send
    temperature_sensor: sensor.temperature
    humidity_sensor: sensor.humidity
    power_sensor: binary_sensor.ac_power
    power_sensor_restore_state: true

关键参数:

  • controller_datazigbee2mqtt/{friendly_name}/set/ir_code_to_send — ZS05 命令的确切路径。
  • device_code:来自 SmartIR 库(smartir/codes/climate)的数字代码。对于罕见品牌,按协议匹配(例如格力、美的)。
  • 温度/湿度/功率传感器 — 可选,用于完整自动化。

将红外代码转换为 Raw MQTT

SmartIR 库以 Broadlink 格式存储代码。ZS05 需要 Base64 Raw MQTT。转换文件:

  • smartir/codes/{type} 仓库下载 JSON。
  • 使用在线 Broadlink → Raw MQTT 转换器或 Python 脚本。
  • 通过 Samba 将转换后的文件放入 /config/custom_components/smartir/codes/climate

device_code 中,仅指定文件名中的数字(例如 9990)。

Google AdInline article slot

Tosot T09H-SNa/I(制热、低风、16°C)的转换命令示例:

{
  "manufacturer": "Tosot",
  "supportedModels": ["T09H-SJ"],
  "supportedController": "MQTT",
  "commandsEncoding": "Raw",
  "minTemperature": 16,
  "maxTemperature": 30,
  "precision": 1,
  "operationModes": ["heat", "cool", "dry", "fan_only", "heat_cool"],
  "fanModes": ["low", "medium", "high", "auto"],
  "commands": {
    "off": "CRgjnBElAm0GJQLgCwHgAxfAC+APK+ALO8AD4A9X4AtfAQpO4B1j4AdX4B+X4Bur",
    "heat": {
      "low": {
        "16": "BRgjnBElAsABAW0G4AEDwA/gLwHgB0vgBxvgB1/AawEKTuAdd+AHV+Azq+AHRw=="
      }
    }
  }
}

转换后,库中提供所有模式/温度的完整命令。

测试与调试

  • 重启 HA。
  • 在气候界面中,更改温度或模式。
  • 在开发者工具 → MQTT 或 Z2M 日志中,检查发布到 zigbee2mqtt/ir_livingroom/set 的消息。
  • ZS05 的 LED 闪烁和设备响应确认成功。

关键要点

  • controller_data 中使用确切主题 /{friendly_name}/set/ir_code_to_send
  • 将代码转换为 Raw MQTT 以确保与 ZS05 兼容。
  • 按协议匹配 device_code,在类似型号上测试。
  • Z2M 和 MQTT 日志是主要调试工具。
  • 对于红外控制器,Zigbee2MQTT 比 ZHA 更稳定。

— Editorial Team

Advertisement 728x90

继续阅读