找回密码
 立即注册

微信扫码登录

搜索
查看: 2139|回复: 21

[厨卫] HA通过小爱音箱控制美的热水器温度

[复制链接]

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
发表于 2025-11-19 00:39:13 | 显示全部楼层 |阅读模式
想必大家都已经会通过巴法云设置,让小爱同学控制美的热水器的开关以及零冷水的开关,但是美的热水器温度控制没办法接入巴法云,故没办法通过小爱音箱控制热水器温度,在论坛找了很久也没找到办法。纯小白,琢磨了半天后,目前已经实现小爱音箱控制美的热水器温度,实现设备小爱音箱一代,美的零冷水热水器,homeassistant中枢一台。
回复

使用道具 举报

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
 楼主| 发表于 2025-11-20 00:51:48 | 显示全部楼层
本帖最后由 aaaabmvdfgbvgvv 于 2025-12-3 09:43 编辑

# 【核心功能】小爱语音控制美的热水器调温自动化
# 适用场景:通过小爱音箱说"热水器温度XX度"(XX支持32-65的阿拉伯数字/中文数字),自动同步设置美的热水器温度
# 依赖设备:小米小爱音箱(对话传感器)、美的智能热水器(支持米家/HA接入)
alias: 小爱对话触发热水器调温
description: 当小爱对话含“热水器温度XX度”时,自动调整美的热水器温度(支持中文数字+32-65度限制)
triggers:
  - entity_id: sensor.xiaomi_s12_0121_conversation  # 替换为你的小爱音箱对话传感器实体ID
    trigger: state  # 触发类型:传感器状态变化(即小爱收到新对话时触发)
conditions:
  - condition: template  # 条件类型:模板判断(筛选有效指令)
    value_template: |
      {{
        '热水器温度' in trigger.to_state.state and  # 1. 对话中必须包含"热水器温度"关键词
        # 2. 能提取到32-65之间的阿拉伯数字或中文数字(仅匹配有效温度范围)
        (trigger.to_state.state | regex_findall('(\\d+|三十二|三十三|三十四|三十五|三十六|三十七|三十八|三十九|四十|四十一|四十二|四十三|四十四|四十五|四十六|四十七|四十八|四十九|五十|五十一|五十二|五十三|五十四|五十五|五十六|五十七|五十八|五十九|六十|六十一|六十二|六十三|六十四|六十五)') | first != none)
      }}
actions:
  - data:
      entity_id: water_heater.211106249939043_water_heater  # 替换为你的美的热水器实体ID
      temperature: >
        {% set chinese_num = trigger.to_state.state |
        regex_findall('(\\d+|三十二度|三十三度|三十四度|三十五度|三十六度|三十七度|三十八度|三十九度|四十度|四十一度|四十二度|四十三度|四十四度|四十五度|四十六度|四十七度|四十八度|四十九度|五十度|五十一度|五十二度|五十三度|五十四度|五十五度|五十六度|五十七度|五十八度|五十九度|六十度|六十一度|六十二度|六十三度|六十四度|六十五度)')
        | first %}  # 提取对话中的温度关键词(含"度"字,确保匹配准确性)
        
        {% set num_map = {  # 中文数字+度 → 阿拉伯数字映射表(用于转换识别)
            '三十二度':32, '三十三度':33, '三十四度':34, '三十五度':35, '三十六度':36, '三十七度':37, '三十八度':38, '三十九度':39,
            '四十度':40, '四十一度':41, '四十二度':42, '四十三度':43, '四十四度':44, '四十五度':45, '四十六度':46, '四十七度':47, '四十八度':48, '四十九度':49,
            '五十度':50, '五十一度':51, '五十二度':52, '五十三度':53, '五十四度':54, '五十五度':55, '五十六度':56, '五十七度':57, '五十八度':58, '五十九度':59,
            '六十度':60, '六十一度':61, '六十二度':62, '六十三度':63, '六十四度':64, '六十五度':65
        } %}
        
        {% set raw_temp = num_map.get(chinese_num, chinese_num | int(default=40)) %}  # 转换温度:优先查映射表,无匹配则转阿拉伯数字(默认40度)
        {% set limited_temp = raw_temp if 32 <= raw_temp <= 65 else 32 if raw_temp < 32 else 65 %}  # 温度限制:低于32→32,高于65→65,中间值保持不变
        {{ limited_temp }}  # 输出最终要设置的温度
    action: water_heater.set_temperature  # 执行动作:设置热水器温度
  - delay:  # 延迟等待:给热水器响应时间,避免后续语音反馈时温度未更新
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 500
  - action: xiaomi_miot.intelligent_speaker  # 执行动作:小爱音箱语音反馈
    metadata: {}
    data:
      execute: false
      silent: false
      entity_id: media_player.xiaomi_s12_0121_play_control  # 替换为你的小爱音箱媒体播放器实体ID
      text: >-
        已设置热水器温度为{{ state_attr('water_heater.211106249939043_water_heater', 'temperature') }}摄氏度  # 语音播报实际设置的温度(读取设备当前温度属性)
mode: single  # 运行模式:单次执行(避免重复触发时冲突)

# 【使用说明】
# 1. 替换3处实体ID:小爱对话传感器、热水器、小爱媒体播放器(在HA的"设置→设备与服务→实体"中查找)
# 2. 支持语音指令示例:"热水器温度45度"、"热水器温度五十五度"、"把热水器温度调到38度"
# 3. 温度限制:默认32-65度(可修改value_template和num_map中的数值调整范围)
# 4. 若中文数字识别失败:检查num_map是否包含目标中文数字+度的组合,确保无错别字
回复

使用道具 举报

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
 楼主| 发表于 2025-11-19 00:40:42 | 显示全部楼层
补充是让小爱音箱控制热水器温度。
回复

使用道具 举报

17

主题

349

回帖

1803

积分

金牌会员

积分
1803
金钱
1427
HASS币
40
发表于 2025-11-19 09:54:17 | 显示全部楼层
你用三个号发了三个帖子说这个事,但是不发实现方法。是要干啥
回复

使用道具 举报

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
 楼主| 发表于 2025-11-19 11:07:14 | 显示全部楼层
lovelyelfpop 发表于 2025-11-19 09:54
你用三个号发了三个帖子说这个事,但是不发实现方法。是要干啥

我哪里有三个号呢?空了就整理发出来
回复

使用道具 举报

14

主题

244

回帖

1904

积分

论坛技术达人

积分
1904
金钱
1646
HASS币
0
发表于 2025-11-19 14:25:41 | 显示全部楼层
控制都能控制 但是没办法完美接入米家
无非就是 node-red 监控一个 小爱音响的字符串变化 然后根据 特定词走一个流程
或者就是 ha 里面的自动化 获取一下 字符串变化 再走一个自动化流程
都不是很OK的接入方法
小爱音响里面还要配置 技能
回复

使用道具 举报

3

主题

9

回帖

87

积分

注册会员

积分
87
金钱
75
HASS币
0
发表于 2025-11-19 14:41:44 来自手机 | 显示全部楼层
大哥,我也同样问题,等着呢
回复

使用道具 举报

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
 楼主| 发表于 2025-11-19 20:44:33 | 显示全部楼层
xxlxmd 发表于 2025-11-19 14:25
控制都能控制 但是没办法完美接入米家
无非就是 node-red 监控一个 小爱音响的字符串变化 然后根据 特定词 ...

对的,差不多,小爱音箱里面也不用配置技能,不配置小爱会提示找不到该设备之类的,但是实际已经执行,并且也可用HA配置小爱播报执行状态。
回复

使用道具 举报

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
 楼主| 发表于 2025-11-19 20:47:04 | 显示全部楼层
xiaotianshi 发表于 2025-11-19 14:41
大哥,我也同样问题,等着呢

你也是美的热水器吗?
回复

使用道具 举报

5

主题

37

回帖

221

积分

中级会员

积分
221
金钱
179
HASS币
0
 楼主| 发表于 2025-11-20 00:54:21 | 显示全部楼层
本帖最后由 aaaabmvdfgbvgvv 于 2025-11-20 00:58 编辑
aaaabmvdfgbvgvv 发表于 2025-11-20 00:51
# 【核心功能】小爱语音控制美的热水器调温自动化
# 适用场景:通过小爱音箱说"热水器温度XX度"(XX支持32- ...

自动化代码如上,需要把分别的实体替换成你的实体即可。
另外小米音箱必须通过xiaomi miot集成到HA中,其他未实验。如果不想下达指令后小爱报错可以去个人训练小爱,训练不训练实际不影响使用!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2026-1-16 15:42 , Processed in 0.399593 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表