『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 2961|回复: 43

[智能音箱] 小爱同学语音控制Homeassistant设备,基本0延迟,非巴法云

[复制链接]

1

主题

19

帖子

153

积分

论坛分享达人

积分
153
金钱
134
HASS币
10
发表于 2024-12-13 11:16:17 | 显示全部楼层 |阅读模式
本帖最后由 yxb 于 2024-12-13 11:16 编辑

先说一下之前看到的帖子常用的两种解决方案:1.HA设备通过巴法云接入米家,优点是没有延迟,缺点是容易掉线
2.通过自动化,从xiaomi miot auto插件处获取Play Control conversation(即小爱对话内容)的值,再对内容进行相应的处理,缺点是有延迟(30s左右)


我的方案是在2的基础上进行改进,降低响应延迟。


准备条件:1.HA主机,2.小爱音箱并且接入接入xiaomi miot auto,3.小米网关并且接入Xiaomi Gateway ,4.任意一个在小米网关下的设备


我们知道Home Assistant Core Integration这个服务可以强制更新实体的值,如果有办法让小爱对话结束时通知HA,HA强制更新Play Control conversation的值,就能立即拿到小爱的最新对话内容。
要想小爱同学对话结束时触发一个事件,可以通过小爱训练计划来完成,如下是我设置的个人训练。

比如想让小爱控制美的热水器,可以添加到训练里(打开热水),然后执行动作可以设置接入了小米网关的设备状态(比如让一个蓝牙灯打开,我用的是闲鱼淘的4路蓝牙开关状态寄存器,USB上电就能用),HA集成Xiaomi Gateway 3,可以实时收到设备更新的状态,
HA收到蓝牙灯的打开的事件作为自动化触发条件,就强制更新Play Control conversation值,再获取小爱对话内容,然后根据内容执行对应的对应操作(HA控制打开美的热水器),然后控制小爱TTS回复操作已完成,最后关闭蓝牙灯(复位)


可以用一个脚本来集成所有操作,根据条件判断对话内容执行对应的操作。

本来想写个流程图的,牛马要打工去了,摸鱼写的教程,有问题欢迎回复。

评分

参与人数 2金钱 +21 HASS币 +10 收起 理由
898501546 + 1 感谢楼主分享!
+ 20 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

1

主题

19

帖子

153

积分

论坛分享达人

积分
153
金钱
134
HASS币
10
 楼主| 发表于 6 天前 | 显示全部楼层
萝卜斯基 发表于 2024-12-19 20:08
可以截图看一下下面几个有条件执行动作里面的设置不
alias: 小爱语音自动化
sequence:
  - action: homeassistant.update_entity
    metadata: {}
    data:
      entity_id:
        - sensor.xiaomi_l15a_1c4b_conversation
  - variables:
      result: "{{states.sensor.xiaomi_l15a_1c4b_conversation.state}}"
  - if:
      - condition: template
        value_template: "{{"打开空调" in result}}"
    then:
      - device_id: 0a68bd24c560a717ca05d9ce62efb655
        domain: text
        entity_id: d02d9c9204b8ac70729cab8762c3d5f9
        type: set_value
        value: 好的,已完成
      - if:
          - condition: numeric_state
            entity_id: climate.186916977074380_climate
            attribute: outdoor_temperature
            below: 20
        then:
          - action: climate.set_temperature
            metadata: {}
            data:
              temperature: 22
            target:
              device_id: 0d0448747193414da6cb1f8ce8ceccfe
        else:
          - action: climate.set_temperature
            metadata: {}
            data:
              temperature: 27
            target:
              device_id: 0d0448747193414da6cb1f8ce8ceccfe
      - device_id: 0d0448747193414da6cb1f8ce8ceccfe
        domain: climate
        entity_id: 8e0d77266555f56dff01330ee2e9bbdd
        type: set_hvac_mode
        hvac_mode: auto
  - if:
      - condition: template
        value_template: "{{"关闭空调" in result}}"
    then:
      - device_id: 0a68bd24c560a717ca05d9ce62efb655
        domain: text
        entity_id: d02d9c9204b8ac70729cab8762c3d5f9
        type: set_value
        value: 好的,已完成
      - type: turn_off
        device_id: 0d0448747193414da6cb1f8ce8ceccfe
        entity_id: a76152cf3a5327086434b7ca0a4dedbf
        domain: switch
  - if:
      - condition: template
        value_template: "{{"洗衣服" in result}}"
    then:
      - type: turn_on
        device_id: 9063a96b43f206d1f26d5329c21ded29
        entity_id: d9e713ee62fa5b002aee70745c15cdf7
        domain: switch
      - type: turn_on
        device_id: 9063a96b43f206d1f26d5329c21ded29
        entity_id: 87e83b0c8f4e8673d5269621c17dfe0e
        domain: switch
      - device_id: 0a68bd24c560a717ca05d9ce62efb655
        domain: text
        entity_id: d02d9c9204b8ac70729cab8762c3d5f9
        type: set_value
        value: 好的,已完成
  - if:
      - condition: template
        value_template: "{{"开热水" in result}}"
    then:
      - type: turn_on
        device_id: 95e162fa76bdd00c6d06dd83a8f47846
        entity_id: 9abba7fadea67c24a52b1d5c0c438f1b
        domain: switch
      - type: turn_on
        device_id: 95e162fa76bdd00c6d06dd83a8f47846
        entity_id: 0c3065d4cc2dbee7124abd8ae82574c7
        domain: switch
      - device_id: 0a68bd24c560a717ca05d9ce62efb655
        domain: text
        entity_id: d02d9c9204b8ac70729cab8762c3d5f9
        type: set_value
        value: 好的,已完成
  - type: turn_off
    device_id: d66dabbe978e45149ed01d7c7071c776
    entity_id: 43443fc6e8343c6992e98a9f6554ecd8
    domain: switch
description: ""

回复

使用道具 举报

1

主题

19

帖子

153

积分

论坛分享达人

积分
153
金钱
134
HASS币
10
 楼主| 发表于 2024-12-13 11:16:18 | 显示全部楼层
附件个人训练
IMG20241213-09300753.jpg
回复

使用道具 举报

22

主题

622

帖子

2815

积分

金牌会员

Rank: 6Rank: 6

积分
2815
金钱
2193
HASS币
0
发表于 2024-12-13 12:09:40 | 显示全部楼层
话说,,能获取到小爱得  对话内容,是不是意味着可以把对话内容 提交给HA的语音助手,助手再接入大模型
回复

使用道具 举报

1

主题

19

帖子

153

积分

论坛分享达人

积分
153
金钱
134
HASS币
10
 楼主| 发表于 2024-12-13 12:32:30 | 显示全部楼层
a_dongde 发表于 2024-12-13 12:09
话说,,能获取到小爱得  对话内容,是不是意味着可以把对话内容 提交给HA的语音助手,助手再接入大模型 ...

确实可以,但是HA的语音助手理解能力不太好。。接大模型还没研究
回复

使用道具 举报

22

主题

622

帖子

2815

积分

金牌会员

Rank: 6Rank: 6

积分
2815
金钱
2193
HASS币
0
发表于 2024-12-13 14:53:53 | 显示全部楼层
yxb 发表于 2024-12-13 12:32
确实可以,但是HA的语音助手理解能力不太好。。接大模型还没研究

大模型的基本理解还是没问题的,起码比一个个命令去匹配训练逻辑要方便,可以参考论坛中的  智普清言  大模型
回复

使用道具 举报

8

主题

69

帖子

937

积分

高级会员

Rank: 4

积分
937
金钱
868
HASS币
0
发表于 2024-12-13 19:32:16 | 显示全部楼层

,

本帖最后由 xiongmx 于 2024-12-13 19:33 编辑

支持一下吧,爱学习的好孩子
回复

使用道具 举报

3

主题

113

帖子

820

积分

高级会员

Rank: 4

积分
820
金钱
707
HASS币
0
发表于 2024-12-14 08:04:09 | 显示全部楼层
a_dongde 发表于 2024-12-13 12:09
话说,,能获取到小爱得  对话内容,是不是意味着可以把对话内容 提交给HA的语音助手,助手再接入大模型 ...

接入大模型的 我已经做出来了。但是处理延迟依旧有点……地址
这个延迟是助手造成的延迟,并非是小爱的延迟。就算在ha的网页上使用文字操作,仍然会有这个延迟。
回复

使用道具 举报

9

主题

193

帖子

1745

积分

金牌会员

Rank: 6Rank: 6

积分
1745
金钱
1552
HASS币
0
发表于 2024-12-14 14:10:34 | 显示全部楼层
话说第三方平台比如巴法云或者涂鸦接入小爱的设备是不是不支持房间分类,这还是挺遗憾的,小度和天猫都可以支持的。
回复

使用道具 举报

0

主题

29

帖子

514

积分

高级会员

Rank: 4

积分
514
金钱
485
HASS币
0
发表于 2024-12-14 17:16:23 | 显示全部楼层
一开始我也使用插件在homeassistant虚拟一个可以调节亮度的灯出来,然后接入巴法云,在小爱使用个人训练改变该虚拟灯的亮度,然后HA中该虚拟灯变更不同亮度时触发相关自动化脚本。
然后发现我这边网络巴法云经常失效,然买了一个蓝牙mesh的米家灯,拆掉灯泡保留芯片,接入多模网关,代替巴法云,目前感觉良好。
回复

使用道具 举报

0

主题

29

帖子

514

积分

高级会员

Rank: 4

积分
514
金钱
485
HASS币
0
发表于 2024-12-14 17:24:42 | 显示全部楼层
监听对话内容延迟太大
监听灯的亮度变化,基本无延迟
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-26 19:21 , Processed in 0.082218 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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