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

标题: 根据论坛dscao大佬和风天气插件写的NR推送播报天气,11.16更新 [打印本页]

作者: Mr.G    时间: 2023-6-30 18:56
标题: 根据论坛dscao大佬和风天气插件写的NR推送播报天气,11.16更新
本帖最后由 郭子漳 于 2023-11-16 11:32 编辑

说明:本帖NR流程中的播报是用的小爱音响,推送可以推送到IOS和企业微信

如果没有小爱音响,用的别的音响,或者别的TTS播报,改为对应的即可。

如果没有苹果手机,安卓手机推送论坛也有教程。只需添加推送即可。

企业微信可以注册一个就行,只不过是可信IP这里我是手动设置的,因为我路由器可以几个月不用重启,性能非常好,所以几乎不牵扯IP地址变化的问题。

1.首先安装论坛@dscao大佬的和风天气插件:https://bbs.hassbian.com/thread-21777-1-1.html

[attach]50109[/attach]

该插件配套的卡片,真的很赞,极力推荐!


2.把下方代码添加到configuration.yaml,然后重启homeassistant。




在这里说下为什么要单独添加这个一小时天气预警的实体和自然灾害预警的实体,因为只有这样才能让实体state变更的时候去触发NR的流程,不然没有想到更好的办法去怎么触发!

注意:上方代码中的weather.XXXX替换为您的天气插件实体名

3.到设备与服务 ---- 辅助元素 ---- 创建 ,创建一个按钮,名字例如:1楼播报天气

[attach]49209[/attach]

[attach]49210[/attach]

[attach]49211[/attach]

然后到config目录下新建文件tsbtjl.txt,tsbtjl.txt文件内容为空就行,什么都不需要输入。


4.导入我下方的NR流程:

[attach]50102[/attach]




具体的逻辑我就不跟大家解释了,大家能看懂的自行去看流程里的代码即可!


这里的NR流程里写的最大支持同时推送4条,但是气象局应该不会同时推送那么多条的, 我们这边两条就很少有这种情况, 有好几条预警信息的情况有,但是同时一起推送两条的概率实际就不大。





[attach]49674[/attach]


③.每次气象台发布后,自动把发布时间+标题存到tsbtjl.txt文件中并加入竖线分割。

[attach]49678[/attach]
④.判断的时候去取tsbtjl.txt中的内容然后找putTime+标题是否在tsbtjl.txt文件中已经存在,如果存在就代表发布和推送过了,不会重复发布和推送
注:因为气象台有可能先发布了两条信息,但是其中一条到期后就剩一条了,如果不去做判断重复的话,那又会重复推送一次,所以这边加了判断重复,是根据时间+发布标题来判断!



注意:NR流程中需要改的地方还蛮多的,您自己的温度、湿度、体感温度传感器,小爱TTS里面的设备ID,推送到企业微信的url和图片URL,推送的手机的实体都要改。

然后点击那个你创建的1楼播报天气按钮就能播报天气,也可以根据自己的需求配置自动化


上方的一小时天气预警就是会播报一小时降雨概率,如果检测到一小时内有降雨可能,就播报


说一下:NR流程中自然灾害预警信息推送和播报是一条一条的推送和播报,即发布一条推送和播报一条
如果同时发布两条就逐条推送新发布的这两条,三条、四条……(最多支持同时发布四条的推送和播报,实际上同时推送两条的概率就非常非常低)
而1楼播报天气按键按下后的自然灾害预警信息是有几条同时播报,具体播报的内容可以看下方的图就明白了



推送手机app效果展示

[attach]49475[/attach]







这边可以配合很多场景,比如可以在ipad、手机上弄个按键,点击时播报天气,或者联动指纹锁,检测到有人按指纹开门时,播报天气,如果指纹锁支持区分指纹,例如耶鲁的,我这边就是用的耶鲁的,就可以直接显示“亲爱的主人,XXX,欢迎您回家……”然后再加上播报天气,等等,也可以用一个计数器和一个人体传感器,来进行起床的检测,具体我另一个帖子里有介绍,https://bbs.hassbian.com/thread-21713-1-1.html我目前就是检测到起床后,就播报该内容。

给大家看下我这边自用的nodered流程吧,基本上一样,就是多了计数器,还有联动警戒设防这块,每个人的应用、使用场景都不一样,还是根据自己的需求吧,各位!
我这边用了该大佬的节假日chineseholiday插件:https://github.com/Crazysiri/chineseholiday
我这边是联动的起床场景,检测到起床后就播报如下内容,并且这里做了一个判断,如果检测到结婚纪念日和我们家庭成员的生日剩余时间<=7天,那我这边就让他播报距离结婚纪念日(X周年)或距离XXX的生日还有7、6、5 ……天 ,如果距离0天的时候就代表是结婚纪念日当天或生日当天,就播报今天是结婚纪念日(X周年)或XXX生日,别忘了!

[attach]50110[/attach]
[attach]50105[/attach]
[attach]50106[/attach]

[attach]50107[/attach]



2023.08.27发现小爱音响播报时,如果内容中出现“我省”两个字,整条信息都不会播报,直接播报“内含敏感信息”,用了这么长时间气象台发布消息时第一次遇到内容中有“我省”两个字,解决办法如下,语音播报把“我省”替换为“婑眚”读音相同的,不影响什么。用别的音响播报的可能不存在这个问题,无需理会,这边修改后只是把播报的内容改了, 推送到手机的内容还是正确的“我省”!

一共需要修改两个地方,一个是自然灾害预警,另一个是下面每一个总播报内容
[attach]50994[/attach]

[attach]50992[/attach]

[attach]50993[/attach]
2023年11月16日更新:
由于nodered16.0.x版本往后把配置目录改为addon_configs/xxxxxxxx_nodered(xxxxxxxx每个人不一样),所以,如果升级nodered16.0.x以后版本的朋友,把tsbtjl.txt文件移动到addon_configs/xxxxxxxx_nodered这个目录下,然后其余不需要操作,就可以正常使用该流程,如果是16.0.x以前的朋友,还是按照教程来,无需任何操作!


有什么问题继续发帖留言反馈!































作者: jasonkiddy2k    时间: 2023-7-1 08:39
看看好不好用
作者: nuknoop    时间: 2023-7-1 08:54
看看大佬
作者: yunjing    时间: 2023-7-2 10:38
插个眼,以后慢慢学习  
作者: bbf162    时间: 2023-7-2 11:11
楼主大佬厉害
作者: carloszo    时间: 2023-7-2 11:16
学习学习
作者: 88802270    时间: 2023-7-3 10:18
学习学习

作者: starxxxw    时间: 2023-7-3 14:06
支持大佬,学习
作者: 含情化雨    时间: 2023-7-3 20:56
看看大佬的
作者: xinghevss    时间: 2023-7-3 22:32
学习一下
作者: lszjl    时间: 2023-7-4 09:10
看看大佬
作者: f830306    时间: 2023-7-4 14:58
谢谢大佬
作者: qxf123369111    时间: 2023-7-4 15:00
观摩一下
作者: 心之向阳    时间: 2023-7-5 00:15
谢谢分享,学习
作者: suk    时间: 2023-7-5 08:51
学习了,膜拜大佬  
作者: qqin83    时间: 2023-7-5 11:00
大佬牛逼.......................
作者: idook    时间: 2023-7-5 13:55
要研究的内容太多了
作者: qqin83    时间: 2023-7-5 16:03
其它得都部署好了 也能正常获取设备状态,小爱得设备id也写进去了 但是小爱同学得tts还是没声音啊
作者: 笨生了个蛋    时间: 2023-7-5 16:44
学习学习
作者: lzlxs    时间: 2023-7-5 16:49
我是来学习的~
作者: 李凯    时间: 2023-7-5 23:47
这个还支持推送到手机吗
作者: Mr.G    时间: 2023-7-6 11:21
李凯 发表于 2023-7-5 23:47
这个还支持推送到手机吗

我这个流程可以推送ios手机和微信(需要有企业微信),
作者: 李凯    时间: 2023-7-8 11:36
郭子漳 发表于 2023-7-6 11:21
我这个流程可以推送ios手机和微信(需要有企业微信),

好的,感谢回复
作者: tuxedos    时间: 2023-7-10 08:35
6666666666666666666
作者: Mr.G    时间: 2023-7-10 22:36
已经修复到完美了,大家可以下载新的。
作者: W@LTER    时间: 2023-7-11 00:14
Logger: homeassistant.config
Source: config.py:868
First occurred: July 10, 2023 at 23:48:05 (1 occurrences)
Last logged: July 10, 2023 at 23:48:05

Invalid config for [template]: invalid template (TemplateSyntaxError: expected token ')', got 'tian_qi') for dictionary value @ data['sensor'][0]['attributes']['text']. Got '{% if (states.weather.701tian_qi.attributes.warning) %}{{ states.weather.701tian_qi.attributes.warning[0].text }} {% else %}null{% endif %}' invalid template (TemplateSyntaxError: expected token ')', got 'tian_qi') for dictionary value @ data['sensor'][0]['attributes']['title']. Got '{% if (states.weather.701tian_qi.attributes.warning) %}{{ states.weather.701tian_qi.attributes.warning[0].title}} {% else %}null{% endif %}' invalid template (TemplateSyntaxError: expected token ')', got 'tian_qi') for dictionary value @ data['sensor'][0]['state']. Got '{% if (states.weather.701tian_qi.attributes.warning) %}{{ states.weather.701tian_qi.attributes.warning[0].title}}{% else %}当前无自然灾害预警信息{% endif %}'. (See /config/configuration.yaml, line 408).


出现这个错误, 是不是yaml格式有问题吗? 我是直接复制的.
作者: y775852121    时间: 2023-7-11 08:16
看看看,好东西

作者: Mr.G    时间: 2023-7-11 14:01
W@LTER 发表于 2023-7-11 00:14
Logger: homeassistant.config
Source: config.py:868
First occurred: July 10, 2023 at 23:48:05 (1 occu ...

格式肯定没问题,检查下是哪个实体名不对吧。
作者: harrychengx    时间: 2023-7-12 04:18
学习一下~
作者: leonyoun    时间: 2023-7-12 14:15
看看怎么搞。。
作者: guoshuhuang    时间: 2023-7-12 16:40
谢谢谢谢谢谢谢谢
作者: zg990725    时间: 2023-7-12 23:10
康康康看看吧,但愿是这样
作者: wz2020    时间: 2023-7-14 22:00
真的很赞,极力推荐
作者: covevy    时间: 2023-7-16 14:59
插眼学习,谢谢大佬
作者: sunquanqing    时间: 2023-7-17 11:46
学习学习在学习 一直掉在ha坑里
作者: yhcslz    时间: 2023-7-18 11:48

学习一下
作者: Mr.G    时间: 2023-7-21 16:04
新流程大家可以下载测试下!
作者: lhfchl    时间: 2023-7-24 21:28
谢谢大佬。
作者: 心之向阳    时间: 2023-7-24 23:04
谢谢分享
作者: summ99111    时间: 2023-7-25 10:35
谢谢楼主的分享!
作者: shouma    时间: 2023-7-26 16:11
感谢大佬的分享/1
作者: zhousai20    时间: 2023-7-27 13:49
1.2.12000.00
作者: minchoul    时间: 2023-7-27 16:29
感谢分享回去试试看
作者: Jinyu    时间: 2023-7-28 11:50
插眼学习
作者: linjz    时间: 2023-7-28 13:17
看看 跟着学习
作者: ablenet    时间: 2023-7-29 13:14
好好学习,天天向上
作者: 65698888    时间: 2023-7-29 13:22
不错,真不错。标记,需要再来看看!
作者: shouma    时间: 2023-7-30 02:37
大佬,我是刚入坑不久的小白,天气插件已安装完,nr流程也导入了,部署的时候提示未知的节点内容,应该是你帖子中提示注意的地方:“NR流程中需要改的地方还蛮多的,您自己的温度、湿度、体感温度传感器,小爱TTS里面的设备ID,推送到企业微信的url和图片URL,推送的手机的实体都要改。”
大佬能不能出一个修改的教程啊,感谢了!!!!
作者: Mr.G    时间: 2023-7-30 12:16
shouma 发表于 2023-7-30 02:37
大佬,我是刚入坑不久的小白,天气插件已安装完,nr流程也导入了,部署的时候提示未知的节点内容,应该是你 ...

私聊我你的QQ,我可以远程帮你看下。
作者: fengdeli    时间: 2023-7-31 15:08
膜拜大佬
作者: baiqianlover    时间: 2023-7-31 16:14
试试  希望好用  就是占用面积比较大  哈哈
作者: C哩C哩    时间: 2023-7-31 23:26
一项一项学
作者: beike62    时间: 2023-8-1 12:52
学习支持一下
作者: youyang1986    时间: 2023-8-1 22:07
多谢大佬!!!
作者: waaabc    时间: 2023-8-2 14:57
看看哈,厉害啊~
作者: minmr    时间: 2023-8-2 15:09
完全搞不来啊

作者: taioner    时间: 2023-8-2 15:19
牛啊,学习一下

作者: kero92126    时间: 2023-8-2 22:07
谢谢楼主分享~学习了
作者: wswuzj    时间: 2023-8-3 09:42
2.把下方代码添加到configuration.yaml,然后重启homeassistant。
作者: xmswen    时间: 2023-8-4 11:21
感谢分享
作者: yaojogd    时间: 2023-8-4 12:37
为什么我一直都获取到0%降雨,可能为小雨的?
作者: Mr.G    时间: 2023-8-4 21:46
yaojogd 发表于 2023-8-4 12:37
为什么我一直都获取到0%降雨,可能为小雨的?

[attach]50449[/attach]
[attach]50448[/attach]


有些地方这个降雨概率好像一直都是0,接口返回就是0,但是我们当地是有降雨概率的, 我这里是调用的这个降雨概率的参数!

您如果一直显示0  您可以把降雨概率这里删了就行,让他只播报  例如:10点可能下小雨,请多加注意!


作者: Mr.G    时间: 2023-8-4 21:48
yaojogd 发表于 2023-8-4 12:37
为什么我一直都获取到0%降雨,可能为小雨的?

我这边的判断逻辑跟这两条没有关系。

[attach]50450[/attach]

作者: yaojogd    时间: 2023-8-4 22:26
郭子漳 发表于 2023-8-4 21:48
我这边的判断逻辑跟这两条没有关系。

那两条红色的是通过小爱报还是提示到手机的,暂时没有小爱,把小爱的部分停了,手机的信息都是天气信息吗?
作者: ajian    时间: 2023-8-5 14:49
谢谢
作者: hnb123    时间: 2023-8-6 18:20
看看大佬的
作者: sunquanqing    时间: 2023-8-6 18:26
麻烦下,请问生活指数,能不能推送呢。小白不会,求指导
作者: Mr.G    时间: 2023-8-6 19:03
sunquanqing 发表于 2023-8-6 18:26
麻烦下,请问生活指数,能不能推送呢。小白不会,求指导

根据我写的这个改一下就行啊,照葫芦画瓢就行!
作者: yybl    时间: 2023-8-6 19:33
导入最新的NR,自然灾害的函数报错了。


  1. node: 函数function : (error)
  2. "TypeError: Cannot read properties of undefined (reading 'length')"
复制代码

作者: sunquanqing    时间: 2023-8-6 22:55
郭子漳 发表于 2023-8-6 19:03
根据我写的这个改一下就行啊,照葫芦画瓢就行!

不知道怎么取值啊,不会啊,能否写几条取值的语句看看,不知道 生活指数 取哪个
作者: Mr.G    时间: 2023-8-7 10:32
yybl 发表于 2023-8-6 19:33
导入最新的NR,自然灾害的函数报错了。

麻烦截图NR里的报错截图, NR我就是用的最新版,没有问题的。
作者: keyi5566    时间: 2023-8-7 10:51

学习一下
作者: 生煎馒头    时间: 2023-8-7 11:03
谢谢分享~~~
作者: 生煎馒头    时间: 2023-8-7 11:08
NR还没接触过
作者: yybl    时间: 2023-8-8 01:35
郭子漳 发表于 2023-8-7 10:32
麻烦截图NR里的报错截图, NR我就是用的最新版,没有问题的。

没事了,自己加上去了。
你给的sensor没有all参数
作者: sunquanqing    时间: 2023-8-9 12:39
const lenold = msg.payload;
const text = msg.warning.attributes.text;
const title = msg.warning.attributes.title;
const warningall = msg.warning.attributes.all;
const tsbtjl = msg.payload;
var len = '';

len = warningall.length;

var alert_content = [];
var xrtsbtjl = [];
for (var i = 0; i < Number(len); i++) {
    if (tsbtjl.indexOf(`${warningall[i].pubTime}` + `${warningall[i].title}`) != -1) {
    }
    else {
        alert_content.push({ 'id': i + 1, 'pubTime': `${warningall[i].pubTime}`, 'title': `${warningall[i].title}`, 'text': `${warningall[i].text}`, });
        xrtsbtjl.push(`${warningall[i].pubTime}` + `${warningall[i].title}` + "丨");
    }
}
msg.alert_content = alert_content;
msg.payload = tsbtjl + xrtsbtjl;

return msg;



这个函数运行后  总是提示:
function : (error)
"TypeError: Cannot read properties of undefined (reading 'length')"


这是怎么回事啊,求指导。
作者: sunquanqing    时间: 2023-8-9 15:12
yybl 发表于 2023-8-8 01:35
没事了,自己加上去了。
你给的sensor没有all参数

all 参数是怎么添加的?求教
作者: chieng    时间: 2023-8-9 15:29
学习一下

作者: huangkaibin    时间: 2023-8-9 21:13
谢谢分享
作者: Mr.G    时间: 2023-8-10 07:50
sunquanqing 发表于 2023-8-9 12:39
const lenold = msg.payload;
const text = msg.warning.attributes.text;
const title = msg.warning.attr ...

代码没有任何问题,您自己再检查下是什么问题
作者: yybl    时间: 2023-8-10 09:36
sunquanqing 发表于 2023-8-9 15:12
all 参数是怎么添加的?求教
  1. template:
  2.   - sensor:
  3.       - name: 自然灾害预警最新一条
  4. ........省略...........
  5.           all: "{% if (states.weather.xxxxxx.attributes.warning) %}{{ states.weather.tian_qi.attributes.warning}} {% else %}null{% endif %}"
复制代码



作者: Mr.G    时间: 2023-8-10 10:06
yybl 发表于 2023-8-10 09:36

感谢提醒,上次更新忘记更新这一块了!
作者: gmmy1979    时间: 2023-8-10 11:15
好的关系!!!!!!
作者: huangkaibin    时间: 2023-8-10 12:11
大佬 请教一下 那个红色自然灾害是不是必有的 我按另一位大佬配置卡片 所有功能都打开了 就是不会显示红色的自然灾害 其他显示没问题 知道啥问题吗?
作者: 生煎馒头    时间: 2023-8-10 16:14
大神~~~~
作者: Mr.G    时间: 2023-8-10 19:11
huangkaibin 发表于 2023-8-10 12:11
大佬 请教一下 那个红色自然灾害是不是必有的 我按另一位大佬配置卡片 所有功能都打开了 就是不会显示红色 ...

红色的自然灾害肯定是有的, 只要是你们当地气象台发布,就会有,如果一直没有就是气象台没发布。 省市区都有气象台!
作者: huangkaibin    时间: 2023-8-11 11:34
大佬 请教一下 刚玩HA 按照你步骤天气总算完成 IOS手机推送怎么弄
作者: Mr.G    时间: 2023-8-11 17:41
huangkaibin 发表于 2023-8-11 11:34
大佬 请教一下 刚玩HA 按照你步骤天气总算完成 IOS手机推送怎么弄

得用梯子,然后获取到推送ID就行, 就能推送了,具体搜下论坛,有教程。
作者: michaelxkh    时间: 2023-8-15 16:51
只有“自然灾害预警最新一条”一个实体,没有“一小时天气预报”实体
作者: Mr.G    时间: 2023-8-15 17:36
michaelxkh 发表于 2023-8-15 16:51
只有“自然灾害预警最新一条”一个实体,没有“一小时天气预报”实体

感谢提醒,应该是论坛问题,我上次明明上传过了,不知道为什么没有了。添加上了
作者: taodajiang    时间: 2023-8-16 09:21
楼主大佬厉害
作者: lxg2008    时间: 2023-8-16 15:16
向大佬学习
作者: yznj    时间: 2023-8-16 16:31

看看好不好用
作者: michaelxkh    时间: 2023-8-17 20:26
能不能把含有节假日的node流分享出来
作者: Bearst    时间: 2023-8-18 12:22
kankanyiixa
作者: 敬轩    时间: 2023-8-23 10:24
学习学习
作者: 砌石野森湖    时间: 2023-8-31 12:47
不错,不错,收藏了
作者: wjzhongshi    时间: 2023-9-3 14:08
学习一下
作者: matrix007    时间: 2023-9-6 15:50
感谢楼主分享
作者: vc616    时间: 2023-9-6 16:11
谢谢分享




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