本帖最后由 wenghy 于 2025-10-18 20:42 编辑
“‘叮,主人,您有一个包裹到门口了,请注意查收哦’,在我坐在电脑前笔耕不辍的时候,小爱音箱突然播报了如下内容,我到门口一看,果然有个包裹,这感觉,真的很美妙。
你是不是遇到过如下场景,快递员送货上门,你却没听到敲门声,等到你知道的时候,已经是第二天早上出门时!或者你在家苦苦等着外卖上门,外卖员直接把外卖放门口拍照走人,等你发现的时候,外卖已经凉透了。上述两种场景我都遇到过,非常苦恼,和快递和外卖掰扯也没啥意义,最近看到论坛上有大佬出了一个教程(https://bbs.hassbian.com/thread-30049-1-1.html),发现AI还有此等用法,就赶紧mark,由于前面写过【NodeRED】AI赋能家居有多暖?开门即享小爱暖心问候,这才是下班回家的正确打开方式这篇文章,我直接用同样的思路在原有NodeRED的基础上改动一下,改成NodeRED版本,完美适配我们的场景。”
01 —
准备工作
“ 本章节是教你准备工作,比如需要摄像头,音箱,还有NodeRED和HA,包括HA的插件的配置。”
我们需要先做如下准备:
1、HA和NodeRED,这个可以看往期的教程,主要是要把Xiaomi Miot插件装上,把音箱和小米监控接入HA
2、摄像头 这个重中之重,毕竟没有摄像头,一切都白搭,摄像头分2种,一种是可以通过rstp和onvif接入HA的,还有一种就是小米之类的,通过MiAuto接入HA,这两种都具备可行性。 小米摄像头的通过Xiaomi Miot接入,直接就有照相机传感器(camera实体)
普通的摄像头,比如海康、大华、萤石、TPLINK等都支持RSTP或者ONVIF协议,大家可以通过如下如下两种方式分别接入RSTP协议,通过通用摄像头这个实体接入:这部分教程👉https://www.cnblogs.com/yongdaimi/p/17933761.html
ONVIF协议通过如下插件接入,可以自动查找,需要输入账号密码,这个在手机APP都可以设置。
以上三种方式接入的摄像头,接入之后会产生camera实体,都需要注意一件事,就是摄像头要能拍到地板上的快递。
3、小爱音箱,用来播报语音消息,所有的小爱音箱型号都可以。
3、HA配置,需要配置一个HA的可写目录,本文设置的是/share/data/,设置步骤如下: 回到 HA 的 configuration.yaml,确认 allowlist_external_dirs 配置正确,且重启过 HA
homeassistant:
allowlist_external_dirs:
- /share/data/ # 路径末尾的斜杠可以加,也可以不加,但要和实际一致
上期的教程,具体指引详见【NodeRED】AI赋能家居有多暖?开门即享小爱暖心问候,这才是下班回家的正确打开方式
02 —
画NR流
“ 本章节是教会你如何画NR流程,整个流程的步骤是:触发-->对camera实体进行快照保存-->读取保存目录-->发送大模型识别-->返回结果-->音箱播报”先看下最后的流程图:
1、inject节点(触发) inject是触发节点,我们需要设置触发的频率和触发的时间,否则半夜播报快递也没人去取。
这部分的时间大家可以自己调整。 2、call service节点(用于调用摄像头快照服务)
参考图片,输入名称,还有选择Server,范围,服务,填入摄像头实体,就是第一章节的摄像头小节写的,我的是camera.menkou_camera
最后的数据这块,选成脚本,内容如下:
{"filename":"/share/data/snapshot_1.jpg"}
3、添加读取文件节点,其中文件名改成上一个节点的filename一样(/share/data/snapshot_1.jpg),输出和编码按照图片里面的选择即可。
3、添加设置大模型参数节点,我用的是千问大模型 模型要用视觉处理模型(qwen3-vl-plus),否则会误报 提示词是“地上是否有包裹,只回YES或NO” url就是你使用模型的地址
代码如下:
msg.url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";
msg.api_key='sk-xXXXXXXXXX';
msg.model="qwen3-vl-plus";
msg.prompt=`地上是否有包裹,只回答YES或NO`;
return msg;
4、添加组装API请求节点,这个节点是用来把前面参数直接发给http,照抄即可。
// 设置 API 请求参数
msg.payload = {
"model": msg.model, // 模型名称
"messages": [{
"role": "user", "content": [{
type: "text",
text: msg.prompt
},
{
type: "image_url",
image_url: {
url: `data:image/jpeg;base64,${msg.payload}`
}
}]}
],
"temperature": 0.7, // 随机性参数
"max_tokens": 200 // 最大响应长度
};
// 设置请求头(根据实际 API 要求修改)
msg.headers = {
"Content-Type": "application/json",
"Authorization": "Bearer "+msg.api_key // 替换为你的 API 密钥
};
// 设置请求 URL(根据实际 API 地址修改)
msg.method = "POST"; // 通常为 POST 方法
return msg;
5、添加http请求节点,调整请求方式和返回
6、添加解析结果节点,我用的是千问大模型
其中属性改成
payload.choices[0].message.content
03 — 结语 附上本人的NR流,大家可以导入改动一下,整个教程在文中已经给了,随着AI的不管发展,AI在工作和生活中的重要性越累越强了,本文只是一个初级的教程,教会大家如何使用AI,善用AI,让我们的生活更好美妙
本文在转移到论坛的时候,做了些许改动,但是全文的干货没变,少了一些图片,而且论坛好像长代码传上去无法使用,我添加附件,大家用附件下载。 大家如有不懂之处,也可以参考原文【NodeRED实战】大模型赋能物联:教你用AI精准识别门口包裹
如果你喜欢我的文章的话,可以关注我的公众号,我在上面分享了很多技术干货。
|