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

 找回密码
 立即注册
查看: 1789|回复: 5

[求助] nodered中小爱tts节点如何设置队列消息

[复制链接]

13

主题

121

帖子

793

积分

高级会员

Rank: 4

积分
793
金钱
667
HASS币
20
发表于 2023-1-9 11:41:26 | 显示全部楼层 |阅读模式
nodered中,如果有多个消息先后到达小爱tts节点,小爱tts节点默认的是重置,后来的消息会打断前面的消息,怎么设置成队列的模式,前面的消息播放完后再播放后面的消息
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2023-1-9 15:11:24 | 显示全部楼层
本帖最后由 bainiu 于 2023-1-9 15:16 编辑

想了个思路,供参考。

1、将消息队列限制速率,每5秒放行一个(用delay节点)

2、用函数将每条过来的消息新增(读取原消息再叠加本次消息),用函数flow.set ("message","msg.text") 写入flow ,用数组保存。

3、另开一个节点每5S读取flow的信息flow.get("message"),如果不为空,则触发:用等待节点,即等小爱音箱状态state, 当msg.data.state == "paused"时音箱空闲,取1条消息 msg.payload输出,同时只删除这条消息。

4、这样每5秒会去读一次flow里的消息,当被队例读完,即清空了。完整播放结束。

回复

使用道具 举报

13

主题

121

帖子

793

积分

高级会员

Rank: 4

积分
793
金钱
667
HASS币
20
 楼主| 发表于 2023-1-9 15:40:48 | 显示全部楼层
bainiu 发表于 2023-1-9 15:11
想了个思路,供参考。

1、将消息队列限制速率,每5秒放行一个(用delay节点)

感谢分享,虽然理解起来有点难度,我试着做一做
回复

使用道具 举报

13

主题

121

帖子

793

积分

高级会员

Rank: 4

积分
793
金钱
667
HASS币
20
 楼主| 发表于 2023-1-9 15:43:42 | 显示全部楼层
bainiu 发表于 2023-1-9 15:11
想了个思路,供参考。

1、将消息队列限制速率,每5秒放行一个(用delay节点)

ha的自动化里面有4种模式,nodered能否跟ha的4种模式进行联动
回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2023-1-9 16:05:34 | 显示全部楼层
airwb 发表于 2023-1-9 15:43
ha的自动化里面有4种模式,nodered能否跟ha的4种模式进行联动

可以联动的。如果你不用flow存储消息,也可以用write和read节点写入和读取text文档。过来一条消息就新增进text文档,读取文档转换为数组,播放一条删除一条。
回复

使用道具 举报

3

主题

34

帖子

495

积分

中级会员

Rank: 3Rank: 3

积分
495
金钱
461
HASS币
0
发表于 2024-4-23 17:55:27 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 17:00 , Processed in 0.050491 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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