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

 找回密码
 立即注册
查看: 2853|回复: 9

[已解决] Homeassistant自动化监听小爱同学对话

[复制链接]

1

主题

7

帖子

102

积分

注册会员

Rank: 2

积分
102
金钱
95
HASS币
0
发表于 2023-12-5 00:34:58 | 显示全部楼层 |阅读模式
本帖最后由 lls136 于 2023-12-13 22:57 编辑

硬件:美的热水器,小米触屏音箱,CM311机顶盒
现状:热水器和小米音箱通过各自集成插件已接入Homeassistant盒子,通过巴法云已实现小米音箱控制热水器的开和关
进阶目的:通过向小爱同学询问,实现播报热水器当前水温
测试过程和结果:
1、通过Homeassistant自动化监听小爱同学对话记录Redmi Smart Display 8inch Play Control conversation,设定触发关键词‘热水器多少度’,调用小米ttl播报美的热水器温度传感器当前数值。
Screenshot_2023-12-04-23-54-04-42_82b10d9f3584360f08225ddcebbb4f6d.jpg
2、小爱音箱app的小爱训练设置对此关键词的回复为"正在查询‘’,防止小爱回复无此功能等情况。
3、实际效果:当向小爱同学询问:‘热水器多少度’,小爱同学回复:正在查询,当前水温**度
4、存在问题:连续询问多次,自动化只触发第一次,后续不触发。只有向小爱问其他问题或命令后,再次询问‘热水器多少度’才会再次触发自动化
5、粗略分析:
        通过nodred里面调试窗口监控小爱同学的对话传感器(Redmi Smart Display 8inch Play Control conversation)状态,发现连续重复的对话内容,对话传感器只在第一次有记录(或者说是状态变化),后续相同内容只当成是状态的持续,从而没能触发自动化。
Screenshot_2023-12-04-23-50-51-62_82b10d9f3584360f08225ddcebbb4f6d.jpg
     通过小爱音箱app查看对话记录,每次询问都有记录,就算相同的关键词询问都是有单独的记录。由此可见,Homeassistant里的小米集成插件或许还得再改进一下,以达到真实记录对话的目的,方便本地化控制。
       目前没有找到解决方法,所以发出请大家指点迷津。

经过后续的测试,找到一个方法从效果上算了解决了问题。
360截图20231213222910247.jpg
360截图20231213224211957.jpg
解决方法如上图所示:在这个水温查询的自动化后面再延时15秒后用小米的ttl服务,从文本朗读改为直接执行命令并选择静默执行。实现每次查询完水温后改变小米对话传感器状态的目的。
而因为是无声执行这个命令,外部人员没有感觉,就像是重复查询也能再次触发自动化,算是曲线救国了。

回复

使用道具 举报

35

主题

984

帖子

4766

积分

论坛元老

Rank: 8Rank: 8

积分
4766
金钱
3782
HASS币
20
发表于 2023-12-5 07:29:51 | 显示全部楼层
本帖最后由 sctale 于 2023-12-5 07:36 编辑

我使用NODE RED的,最后那个勾选项去掉就行,不过这样容易出现不稳定时候的误触发,不太推荐。另外,建议把轮询时间改为5秒,默认时间太长了。

Snipaste_2023-12-05_07-27-59.jpg


回复

使用道具 举报

40

主题

2177

帖子

8330

积分

元老级技术达人

积分
8330
金钱
6138
HASS币
110
发表于 2023-12-5 08:58:20 | 显示全部楼层
不知道这个实体的属性里有没有时间戳之类的变量
回复

使用道具 举报

1

主题

11

帖子

142

积分

注册会员

Rank: 2

积分
142
金钱
131
HASS币
0
发表于 2024-5-24 11:11:19 | 显示全部楼层
帮转,借鉴下这位大佬的帖子,实现逻辑:把判断从如果值变为XXX修改为如果值包含XXX,这样相同的词多次都会执行。
https://bbs.hassbian.com/thread-22469-1-1.html
回复

使用道具 举报

0

主题

11

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
金钱
333
HASS币
0
发表于 2024-5-25 09:06:18 | 显示全部楼层
小白请教大佬,实现逻辑:把判断从如果值变为XXX修改为如果值包含XXX,这个到底要怎么改
回复

使用道具 举报

5

主题

80

帖子

461

积分

中级会员

Rank: 3Rank: 3

积分
461
金钱
381
HASS币
0
发表于 2024-5-26 15:34:54 | 显示全部楼层
siven 发表于 2024-5-24 11:11
帮转,借鉴下这位大佬的帖子,实现逻辑:把判断从如果值变为XXX修改为如果值包含XXX,这样相同的词多次都会 ...

大佬,把判断从如果值变为XXX修改为如果值包含XXX,这个如何操作
回复

使用道具 举报

0

主题

21

帖子

382

积分

中级会员

Rank: 3Rank: 3

积分
382
金钱
361
HASS币
0
发表于 2024-5-26 22:58:31 | 显示全部楼层
建议可以把调整音量改成执行“安静”,小爱不会出声的,也不会改变音量。
回复

使用道具 举报

0

主题

1

帖子

16

积分

新手上路

Rank: 1

积分
16
金钱
15
HASS币
0
发表于 2024-7-3 02:58:26 | 显示全部楼层
可以在动作结束的时候设置 Mi AI Speaker Pro Execute Text Directive 的值为退下,即可重置conversation的状态
一点参考:https://biliko.net/article/homeassitant-1
回复

使用道具 举报

0

主题

17

帖子

155

积分

注册会员

Rank: 2

积分
155
金钱
138
HASS币
0
发表于 2024-7-23 11:48:45 | 显示全部楼层
小爱温度

alias: 小爱温度
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_lx06_db5f_conversation
    to: 客厅温度
    attribute: content
condition: []
action:
  - service: xiaomi_miot.intelligent_speaker
    data:
      execute: false
      silent: false
      entity_id: media_player.xiaomi_lx06_db5f_play_control
      text: >-
        当前客厅温度{{ states('sensor.0xa4c1386c34115350_temperature') }}度,客厅湿度{{
        states('sensor.0xa4c1386c34115350_humidity') }}度
mode: single
回复

使用道具 举报

0

主题

26

帖子

70

积分

注册会员

Rank: 2

积分
70
金钱
44
HASS币
0
发表于 2024-7-26 09:50:44 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 16:01 , Processed in 0.141957 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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