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

 找回密码
 立即注册
查看: 3854|回复: 16

[教程系列] 通过小爱同学实现安卓TV换台的功能!

[复制链接]

1

主题

47

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
187
HASS币
0
发表于 2023-2-15 18:04:22 | 显示全部楼层 |阅读模式
本帖最后由 fsk2684 于 2023-2-17 14:47 编辑

前言:我家的电视不是小米的android电视,想通过小爱同学来控制电视观看想看的频道。论坛中也有类似的教程,但是他的需要维护IPTV列表,这个列表很容易失效,所以就想着使用现成的电视直播软件,我这里用的是酷看直播。

思路:
1.通过node-red-contrib-xiaodu-xiaoai获取小爱同学收到的语音指令的指令。
2.获取指令后筛选关键频道名称。如珠江台、浙江卫视等。
3.打开电视直播软件,获取频道号码。通过<input text 相应的频道号码> 命令转跳到相应的频道

先上流程图:
微信截图_20230217144655.png


使用这个流程需要修改几个地方,主要需要修改实例ID和需要控制的设备,node不多,一个一个点开看看!

【2023/02/16】
应各位的要求,将代码改为附件方式。 flows.zip (6.61 KB, 下载次数: 102)

同时在使用过程中我发现,如果我第一次对小爱同学喊“我要看珠江台",然后一直不使用小爱语音,当我第二次喊小爱喊”我要看珠江台“的时候,他就不会执行任何的动作。这个有待解决,各位也可以给个思路解决一下。


回复

使用道具 举报

5

主题

60

帖子

407

积分

中级会员

Rank: 3Rank: 3

积分
407
金钱
347
HASS币
0
发表于 2023-2-16 12:40:14 | 显示全部楼层
流怎么打不开呢
回复

使用道具 举报

5

主题

60

帖子

407

积分

中级会员

Rank: 3Rank: 3

积分
407
金钱
347
HASS币
0
发表于 2023-2-16 12:42:30 | 显示全部楼层
lzmlzm 发表于 2023-2-16 12:40
流怎么打不开呢

判断执行的节点是怎么写的呀,正在研究nr
回复

使用道具 举报

5

主题

60

帖子

407

积分

中级会员

Rank: 3Rank: 3

积分
407
金钱
347
HASS币
0
发表于 2023-2-16 12:45:34 | 显示全部楼层
拖到流程没有反应
回复

使用道具 举报

10

主题

1332

帖子

4252

积分

论坛元老

Rank: 8Rank: 8

积分
4252
金钱
2920
HASS币
0
发表于 2023-2-16 13:21:06 | 显示全部楼层
感谢分享,不过最好是导出接送文件分享,流导入不成功。
回复

使用道具 举报

1

主题

47

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
187
HASS币
0
 楼主| 发表于 2023-2-17 14:54:57 来自手机 | 显示全部楼层
lzmlzm 发表于 2023-2-16 12:42
判断执行的节点是怎么写的呀,正在研究nr
设置中
global.set("lasttext", "你好小爱");

函数中
var lasttext = global.get("lasttext") || false;
var newtext = msg.payload.state;
var newmsg={};
if (lasttext != newtext){
    newmsg = {payload:newtext}
    global.set("lasttext",newtext);
    return newmsg;
} else {
    return null;
}
回复

使用道具 举报

10

主题

1332

帖子

4252

积分

论坛元老

Rank: 8Rank: 8

积分
4252
金钱
2920
HASS币
0
发表于 2023-2-17 15:48:02 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

5

主题

60

帖子

407

积分

中级会员

Rank: 3Rank: 3

积分
407
金钱
347
HASS币
0
发表于 2023-2-17 20:48:05 | 显示全部楼层
fsk2684 发表于 2023-2-17 14:54
设置中
global.set("lasttext", "你好小爱");

十分感谢楼主的分享,谢谢
回复

使用道具 举报

5

主题

60

帖子

407

积分

中级会员

Rank: 3Rank: 3

积分
407
金钱
347
HASS币
0
发表于 2023-2-17 22:33:20 | 显示全部楼层
想求助楼主一个问题,就是我的一个节点是采集开关状态on和off,然后输出驱动另一个节点,现在想怎样写脚本才能在开或关的状态变化时只通过一次,状态改变后再输出一次,其他时间状态更新也不会输出,现在是每5秒更新一次状态,输出就触发一次
回复

使用道具 举报

1

主题

47

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
金钱
187
HASS币
0
 楼主| 发表于 2023-2-19 04:02:23 | 显示全部楼层
lzmlzm 发表于 2023-2-17 22:33
想求助楼主一个问题,就是我的一个节点是采集开关状态on和off,然后输出驱动另一个节点,现在想怎样写脚本 ...

设置中
global.set("lasttext", "你好小爱");


函数中
var lasttext = global.get("lasttext") || false;
var newtext = msg.payload.state;
var newmsg={};
if (lasttext != newtext){
    newmsg = {payload:newtext}
    global.set("lasttext",newtext);
    return newmsg;
} else {
    return null;
}

就是使用这个方法,这个方法是对比上一次小爱获取的信息和这次获取的信息,相同则不执行,同理也可应用到你这个场景。据说change节点也可以实现,我有空也研究一下,我也是在学的过程。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 03:41 , Processed in 0.090317 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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