查看: 10627|回复: 13
[技术探讨]
小爱音箱自定义指令DIY实现交流
[复制链接]
子风
子风
当前离线
积分372
金钱344
威望0
贡献0
HASS币20
6
主题17
回帖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 (198.34 KB, 下载次数: 0)
下载附件
2022-7-18 10:54 上传
收藏4
回复
使用道具
举报
silversucks
silversucks
当前离线
积分1395
金钱1285
威望0
贡献0
HASS币0
0
主题110
回帖1395
积分
金牌会员
金牌会员, 积分 1395, 距离下一级还需 1605 积分
金牌会员, 积分 1395, 距离下一级还需 1605 积分
积分1395
金钱1285
HASS币0
发消息
沙发
发表于 2022-7-18 12:07:54
来自手机
|
只看该作者
用自动化,不存在这两个问题
回复
使用道具
举报
秋雨轩
秋雨轩
当前离线
积分2758
金钱2474
威望0
贡献0
HASS币50
11
主题263
回帖2758
积分
金牌会员
金牌会员, 积分 2758, 距离下一级还需 242 积分
金牌会员, 积分 2758, 距离下一级还需 242 积分
积分2758
金钱2474
HASS币50
发消息
板凳
发表于 2022-7-18 14:20:52
来自手机
|
只看该作者
本帖最后由 秋雨轩 于 2022-7-18 14:23 编辑
1.miot auto插件实现的原理是通过miot协议轮询米家服务器上的信息,这个是改变不了的,是受协议类型影响的原理性的,不能像zigbee协议那样本地实时更新。所以如果想降低延时,解决办法是缩短轮询间隔,miot auto插件本身支持更改轮询间隔。2.看你图片,你的NR触发节点用的是HA节点吧,没记错的话这个节点可以设置是否是“与上次信息不一致时才触发”,把这个取消掉,应该就能前后相同信息都触发了吧。
回复
使用道具
举报
子风
子风
当前离线
积分372
金钱344
威望0
贡献0
HASS币20
6
主题17
回帖372
积分
论坛技术达人
积分372
金钱344
HASS币20
发消息
地板
楼主|
发表于 2022-7-18 14:36:57
|
只看该作者
秋雨轩 发表于 2022-7-18 14:20
1.miot auto插件实现的原理是通过miot协议轮询米家服务器上的信息,这个是改变不了的,是受协议类型影响的 ...
感谢大佬的指导, 已经做出调整, 兴高采烈只等回家测试
回复
使用道具
举报
silversucks
silversucks
当前离线
积分1395
金钱1285
威望0
贡献0
HASS币0
0
主题110
回帖1395
积分
金牌会员
金牌会员, 积分 1395, 距离下一级还需 1605 积分
金牌会员, 积分 1395, 距离下一级还需 1605 积分
积分1395
金钱1285
HASS币0
发消息
5#
发表于 2022-7-19 10:35:51
|
只看该作者
子风 发表于 2022-7-18 14:36
感谢大佬的指导, 已经做出调整, 兴高采烈只等回家测试
重启ha你会发现这个方案的问题,最好解决办法是自动化触发。
回复
使用道具
举报
sxrcm
sxrcm
当前离线
积分3158
金钱2912
威望0
贡献0
HASS币0
0
主题246
回帖3158
积分
论坛元老
积分3158
金钱2912
HASS币0
发消息
6#
发表于 2022-7-19 14:05:05
|
只看该作者
silversucks 发表于 2022-7-19 10:35
重启ha你会发现这个方案的问题,最好解决办法是自动化触发。
自动化的方案是啥?能否共享一下
回复
使用道具
举报
子风
子风
当前离线
积分372
金钱344
威望0
贡献0
HASS币20
6
主题17
回帖372
积分
论坛技术达人
积分372
金钱344
HASS币20
发消息
7#
楼主|
发表于 2022-7-20 09:29:06
|
只看该作者
silversucks 发表于 2022-7-19 10:35
重启ha你会发现这个方案的问题,最好解决办法是自动化触发。
确实有问题,node-red里面的events: state节点时不时的会产出重复事件,实际上并没有对小爱说话(还是上次说的内容).
自动化方案能分享一下不
回复
使用道具
举报
lamioiseng
lamioiseng
当前离线
积分573
金钱483
威望0
贡献0
HASS币0
8
主题82
回帖573
积分
高级会员
高级会员, 积分 573, 距离下一级还需 427 积分
高级会员, 积分 573, 距离下一级还需 427 积分
积分573
金钱483
HASS币0
发消息
8#
发表于 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
高手,这是高手!
查看全部评分
回复
使用道具
举报
子风
子风
当前离线
积分372
金钱344
威望0
贡献0
HASS币20
6
主题17
回帖372
积分
论坛技术达人
积分372
金钱344
HASS币20
发消息
9#
楼主|
发表于 2022-9-15 17:53:47
|
只看该作者
lamioiseng 发表于 2022-7-24 06:27
我的思路是: 我問音箱我手機電量,音箱根據HA數據TTS回答
感谢老哥
回复
使用道具
举报
zelotoj
zelotoj
当前离线
积分940
金钱872
威望0
贡献0
HASS币0
0
主题68
回帖940
积分
高级会员
高级会员, 积分 940, 距离下一级还需 60 积分
高级会员, 积分 940, 距离下一级还需 60 积分
积分940
金钱872
HASS币0
发消息
10#
发表于 2022-9-22 03:14:28
|
只看该作者
lamioiseng 发表于 2022-7-24 06:27
我的思路是: 我問音箱我手機電量,音箱根據HA數據TTS回答
非常好用,感谢分享,试验成功
回复
使用道具
举报