智能家居 篇十:第八章 说有用的话,做有用的事 ——Notify的进阶

2022-12-18 15:52:06 5点赞 53收藏 1评论

导读:话说对了才有用,没用的叫啰嗦;事做对了才有用,不然叫磨洋工。

什么叫有用实在是见仁见智,话说出来有人爱听,事做出来有人开心,就够了。

就说我吧,出门下楼,下雨了,没带伞;大太阳,没戴帽子墨镜,只好心里一万个不情愿。所以第一个要做的就是出门提醒,尤其是下雨这件事情实在是。。。。

编程嘛,总是要有逻辑:

开门→检测天气预报→条件分流→播放提醒

老规矩,先增加天气预报的功能到Homeassistant中,系统自带了现成的英文天气预报,HA管理页->侧边栏->配置->集成->“+”,Meteorologisk institutt (Met.no) 跳出来的对话框中填好名字,和经纬度就可以了,默认的经纬度就是你当前的位置。如果需要选定地点的经纬度,1、你可以上网去找,2、侧边栏->配置->地点->“+” 在跳出的地图上选择你要的地方,就会有对应的经纬度显示出来。

第八章 说有用的话,做有用的事 ——Notify的进阶

图上是个有意思的地方,当然不是你的经纬度,如果是家里的话,半径小一点,100左右就可以了。

Met.no设定好之后,就可以到HA管理页添加天气预报卡片:

第八章 说有用的话,做有用的事 ——Notify的进阶

看起来还是蛮好看的。

既然说了是进阶,那么就要用上函数和变量,DIY的时候总得要有所追求,不然就没得提高了不是。上Node-RED

第八章 说有用的话,做有用的事 ——Notify的进阶

今天用五个部件,三个新部件

current_state

在流程中检测某个实体(entity_id)的当前状态。

switch

是一个分流器,通过设定不同的关键字来选择或者过滤输出,每一个输出点都对应一个条件。

函数

函数是个很有用的部件,在属性页里可以写很多东西,有点类似于语言编程了。进阶嘛,总得有点小难度。

event:state不多讲,和之前一样的设定方式,entity_id设定为Door(门),state设定为on,就是开门就输出一条消息。

第八章 说有用的话,做有用的事 ——Notify的进阶

call service不多讲,这里设定为tts 到 google home。注意的是Data留空,用函数来控制。

第八章 说有用的话,做有用的事 ——Notify的进阶

current_state 如其名,就是检测当前状态,并传递到下一个部件。State留空,就是不管是什么状态都在同一个输出节点。

第八章 说有用的话,做有用的事 ——Notify的进阶

switch也不难,按照天气状态来添加分流条件。多个条件通过属性页左下的添加按钮来增加。

第八章 说有用的话,做有用的事 ——Notify的进阶

函数来了,属性页打开基本啥都没有,想起一句歌词“空,空,空,空如也”。就像赚钱,越是啥都不干的越赚钱。这东西也一样,空,但很牛X。

第八章 说有用的话,做有用的事 ——Notify的进阶

msg.payload 负责告诉下一个接收部件消息的来源;变量内容则是要传到下一个部件的具体内容,这里我们要传递到下一个流程的Data(在call service中留空了),所以变量名称就是"data": ,call service是TTS,所以data的格式按照tts的需求去写,"message"、"Language"。变量中语句多于一行,记得加“,”分割,最后一行不需要(初学之坑)。

第八章 说有用的话,做有用的事 ——Notify的进阶

按照上图部署之后,当门打开时,如果天气预报下雨,HA就会通过Google home说话提醒带伞。

既然switch设定了5个输出口,那另外四个怎么用呢,可以通过设定每个不同的tts home来对应,不过这样的话还要函数干甚呢,所以函数不是这样用的。

函数的进阶使用

Switch的属性也有一项msg.payload,也就是说switch的输出消息也是通过msg.payload来传递,那么在函数中就可以引用啦。

第八章 说有用的话,做有用的事 ——Notify的进阶

初学的时候,可以把需要带伞的,和只是需要报一下天气的分开,这个时候switch就有用啦,如果再进阶,函数中可以直接使用if else来判断,那么switch都不需要了。。。。

#附上代码:

var mesg = "" var laug = "en-us" if (msg.payload == "rainy") { mesg = "take a umbrella." } else if (msg.payload == "tornad") { mesg = "体重不够,不要出门", laug = "zh-cn" } else if (msg.payload == "hail") { mesg = "请自带铁锅。", laug = "zh-cn" } msg.payload = { "data": { "message": "outside is " + msg.payload + mesg, "language": laug } } return msg;

函数的使用同样见仁见智,会成为HA编程中最有趣的部分,比起添加多个部件来达到同样的效果,函数更能够把流程精简下来。

记得买输出设备

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

乐天派 人体存在传感器居基础感应控制Matter双生态多平台Mijia IOS Homekit六种数据探测 传感器

259元起

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

MIJIA 米家 MJYDOAYL 自动感应夜灯 白色

19.9元起

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

Xiaomi 小米 DMWG03LM 智能多模网关2 白色

181.79元起

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

Xiaomi 小米 ZSWG01CM 智能中枢网关 黑色

191.79元起

京东京造 TH1 时钟温湿度计 白色

京东京造 TH1 时钟温湿度计 白色

29.9元起

Xiaomi 小米 米家智能插座3

Xiaomi 小米 米家智能插座3

49.9元起

MIJIA 米家 1S 增强版 智能台灯 白色

MIJIA 米家 1S 增强版 智能台灯 白色

156元起

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

linptech 领普 智能无线开关KS1Pro屏显温湿度传感器智能联动免布线遥控开关

50.9元起

玺加 智能窗帘宝X3 光能充电窗帘伴侣

玺加 智能窗帘宝X3 光能充电窗帘伴侣

暂无报价

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 AI指纹锁

HUAWEI 华为 智能门锁 Plus AI 3D人脸解锁快准稳 AI指纹锁

2899元起

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

Xiaomi 小米 MCCG02HL 小米门窗传感器 2 米家

34.9元起

Xiaomi 小米 无线开关 蓝牙版

Xiaomi 小米 无线开关 蓝牙版

32.9元起

Xiaomi 小米 SJWS01LM 水浸卫士 白色

Xiaomi 小米 SJWS01LM 水浸卫士 白色

55元起

米家 人体传感器2S 居 智能监测联动

米家 人体传感器2S 居 智能监测联动

61.99元起

MIJIA 米家 空调伴侣2 智能插座 白色

MIJIA 米家 空调伴侣2 智能插座 白色

68元起

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

卡萨帝(Casarte)掌静脉人脸识别带可视猫眼密码锁入户门带摄像头指纹锁电子锁智能门锁CFA-X70-CAU1罗曼金

6009元起
1评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
53
扫一下,分享更方便,购买更轻松