找回密码
 立即注册

微信扫码登录

搜索
查看: 220|回复: 0

[教程系列] 【NodeRED实战】大模型赋能物联:教你用AI精准识别门口包裹

[复制链接]

4

主题

73

回帖

795

积分

高级会员

积分
795
金钱
718
HASS币
0
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 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都可以设置。
image.png
以上三种方式接入的摄像头,接入之后会产生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实体进行快照保存-->读取保存目录-->发送大模型识别-->返回结果-->音箱播报”先看下最后的流程图: image.png
1、inject节点(触发)
inject是触发节点,我们需要设置触发的频率和触发的时间,否则半夜播报快递也没人去取。


这部分的时间大家可以自己调整。
2、call service节点(用于调用摄像头快照服务)
image.png
参考图片,输入名称,还有选择Server,范围,服务,填入摄像头实体,就是第一章节的摄像头小节写的,我的是camera.menkou_camera


最后的数据这块,选成脚本,内容如下:

{"filename":"/share/data/snapshot_1.jpg"}

3、添加读取文件节点,其中文件名改成上一个节点的filename一样(/share/data/snapshot_1.jpg),输出和编码按照图片里面的选择即可。

image.png
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请求节点,调整请求方式和返回
image.png


6、添加解析结果节点,我用的是千问大模型
image.png

其中属性改成
payload.choices[0].message.content
03
结语
附上本人的NR流,大家可以导入改动一下,整个教程在文中已经给了,随着AI的不管发展,AI在工作和生活中的重要性越累越强了,本文只是一个初级的教程,教会大家如何使用AI,善用AI,让我们的生活更好美妙


本文在转移到论坛的时候,做了些许改动,但是全文的干货没变,少了一些图片,而且论坛好像长代码传上去无法使用,我添加附件,大家用附件下载。
大家如有不懂之处,也可以参考原文【NodeRED实战】大模型赋能物联:教你用AI精准识别门口包裹


如果你喜欢我的文章的话,可以关注我的公众号,我在上面分享了很多技术干货。
image.png









image.png

【NodeRED实战】大模型赋能物联:教你用AI精准识别门口包裹.zip

2.44 KB, 下载次数: 5

点击【我叫小宇哥】扫码关注
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-10-22 04:41 , Processed in 0.102398 second(s), 10 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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