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

 找回密码
 立即注册
查看: 5974|回复: 13

[技术探讨] 小爱音箱自定义指令DIY实现交流

[复制链接]

6

主题

23

帖子

372

积分

论坛技术达人

积分
372
金钱
344
HASS币
20
发表于 2022-7-18 10:54:26 | 显示全部楼层 |阅读模式
看了坛子里wdmywm3老哥的贴子,Xiaomi Miot Auto插件里集成的小爱音箱,里面conversation传感器可以拿到对小爱说的话,于是进行了以下操作

1.note-red订阅各个小爱conversation实体的事件
2.事件发生时调用我自己开发的后端api,主要逻辑是匹配关键字,并进行对应操作以及让小爱做出回复

例如:小爱同学,开启书房电脑--订阅到事件--调用api--后端发出wake on lan魔术包--驱动小爱进行回复(调用小爱播报指定内容api)

目前使用下来,发现有两个问题
1.node-red拿到事件有几秒的延迟,不知有没有办法改善
2.如果对小爱说同样的话,则conversation传感器变更事件不会被触发,后端api无法拿到消息并进行处理,尝试在每次调用后给conversation传感器赋值,没有成功,不知有没有什么办法.

我自己开发的webapi文档地址:http://api.service.zhimin.me:30005/
node-red截图
微信截图_20220718105309.png
回复

使用道具 举报

0

主题

109

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
金钱
1210
HASS币
0
发表于 2022-7-18 12:07:54 来自手机 | 显示全部楼层
用自动化,不存在这两个问题
回复

使用道具 举报

11

主题

271

帖子

2658

积分

金牌会员

Rank: 6Rank: 6

积分
2658
金钱
2377
HASS币
50
发表于 2022-7-18 14:20:52 来自手机 | 显示全部楼层
本帖最后由 秋雨轩 于 2022-7-18 14:23 编辑

1.miot auto插件实现的原理是通过miot协议轮询米家服务器上的信息,这个是改变不了的,是受协议类型影响的原理性的,不能像zigbee协议那样本地实时更新。所以如果想降低延时,解决办法是缩短轮询间隔,miot auto插件本身支持更改轮询间隔。2.看你图片,你的NR触发节点用的是HA节点吧,没记错的话这个节点可以设置是否是“与上次信息不一致时才触发”,把这个取消掉,应该就能前后相同信息都触发了吧。
回复

使用道具 举报

6

主题

23

帖子

372

积分

论坛技术达人

积分
372
金钱
344
HASS币
20
 楼主| 发表于 2022-7-18 14:36:57 | 显示全部楼层
秋雨轩 发表于 2022-7-18 14:20
1.miot auto插件实现的原理是通过miot协议轮询米家服务器上的信息,这个是改变不了的,是受协议类型影响的 ...

感谢大佬的指导, 已经做出调整, 兴高采烈只等回家测试
回复

使用道具 举报

0

主题

109

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
金钱
1210
HASS币
0
发表于 2022-7-19 10:35:51 | 显示全部楼层
子风 发表于 2022-7-18 14:36
感谢大佬的指导, 已经做出调整, 兴高采烈只等回家测试

重启ha你会发现这个方案的问题,最好解决办法是自动化触发。
回复

使用道具 举报

0

主题

216

帖子

2557

积分

金牌会员

Rank: 6Rank: 6

积分
2557
金钱
2341
HASS币
0
发表于 2022-7-19 14:05:05 | 显示全部楼层
silversucks 发表于 2022-7-19 10:35
重启ha你会发现这个方案的问题,最好解决办法是自动化触发。

自动化的方案是啥?能否共享一下
回复

使用道具 举报

6

主题

23

帖子

372

积分

论坛技术达人

积分
372
金钱
344
HASS币
20
 楼主| 发表于 2022-7-20 09:29:06 | 显示全部楼层
silversucks 发表于 2022-7-19 10:35
重启ha你会发现这个方案的问题,最好解决办法是自动化触发。

确实有问题,node-red里面的events: state节点时不时的会产出重复事件,实际上并没有对小爱说话(还是上次说的内容).

自动化方案能分享一下不
回复

使用道具 举报

8

主题

90

帖子

569

积分

高级会员

Rank: 4

积分
569
金钱
479
HASS币
0
发表于 2022-7-24 06:27:45 | 显示全部楼层
我的思路是: 我問音箱我手機電量,音箱根據HA數據TTS回答

alias: 查詢手機電量
description: ''
trigger:
  - platform: state
    entity_id:
      - sensor.xiaomi_lx5a_eb33_conversation
    attribute: content
    to: 查手机电量
condition: []
action:
  - service: xiaomi_miot.intelligent_speaker
    data:
      text: 手机电量為{{ states("sensor.mi_9_battery_level") }}百分比
      entity_id: media_player.xiaomi_lx5a_eb33_play_control
      throw: true
  - wait_template: '{{ states (''sensor.mi_9_battery_level'') }}'
    continue_on_timeout: true
mode: single

评分

参与人数 1金钱 +1 收起 理由
zylok + 1 高手,这是高手!

查看全部评分

回复

使用道具 举报

6

主题

23

帖子

372

积分

论坛技术达人

积分
372
金钱
344
HASS币
20
 楼主| 发表于 2022-9-15 17:53:47 | 显示全部楼层
lamioiseng 发表于 2022-7-24 06:27
我的思路是: 我問音箱我手機電量,音箱根據HA數據TTS回答

感谢老哥
回复

使用道具 举报

0

主题

67

帖子

887

积分

高级会员

Rank: 4

积分
887
金钱
820
HASS币
0
发表于 2022-9-22 03:14:28 | 显示全部楼层
lamioiseng 发表于 2022-7-24 06:27
我的思路是: 我問音箱我手機電量,音箱根據HA數據TTS回答

非常好用,感谢分享,试验成功
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 18:21 , Processed in 0.064604 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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