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

标题: Homeassistant自动化监听小爱同学对话 [打印本页]

作者: lls136    时间: 2023-12-5 00:34
标题: Homeassistant自动化监听小爱同学对话
本帖最后由 lls136 于 2023-12-13 22:57 编辑

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

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


作者: sctale    时间: 2023-12-5 07:29
本帖最后由 sctale 于 2023-12-5 07:36 编辑

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

[attach]54059[/attach]



作者: ghostist    时间: 2023-12-5 08:58
不知道这个实体的属性里有没有时间戳之类的变量
作者: siven    时间: 2024-5-24 11:11
帮转,借鉴下这位大佬的帖子,实现逻辑:把判断从如果值变为XXX修改为如果值包含XXX,这样相同的词多次都会执行。
https://bbs.hassbian.com/thread-22469-1-1.html
作者: nickysj    时间: 2024-5-25 09:06
小白请教大佬,实现逻辑:把判断从如果值变为XXX修改为如果值包含XXX,这个到底要怎么改
作者: guxingtianya    时间: 2024-5-26 15:34
siven 发表于 2024-5-24 11:11
帮转,借鉴下这位大佬的帖子,实现逻辑:把判断从如果值变为XXX修改为如果值包含XXX,这样相同的词多次都会 ...

大佬,把判断从如果值变为XXX修改为如果值包含XXX,这个如何操作
作者: cyqand    时间: 2024-5-26 22:58
建议可以把调整音量改成执行“安静”,小爱不会出声的,也不会改变音量。
作者: Biliko    时间: 2024-7-3 02:58
可以在动作结束的时候设置 Mi AI Speaker Pro Execute Text Directive 的值为退下,即可重置conversation的状态
一点参考:https://biliko.net/article/homeassitant-1

作者: lazybbb    时间: 2024-7-23 11:48
小爱温度

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
作者: hlhl    时间: 2024-7-26 09:50
感谢楼主分享




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5