监控抓拍照片并合成GIF图推送企业微信

更新了一下,所有的配置只需要修改最开始的节点,
增加了视频录像和自动删除历史文件功能,如果视频录制失败,
请先看看是否支持ffmpeg,并在camera下新建一个video文件夹!

先看效果,微信收到后是这样的(电脑端效果)

微信截图_20190905154148.png

点开后,是一个网页,这个是基于企业微信自己的服务器,理论上不会存在被屏蔽的可能,图片还是调用的自己服务器的

整个流预览一下

使用说明

Author:三木 Version:6.0 最后修改时间:2019.09.30

首先来理一下这个流的逻辑关系:
当获取到一个触发事件,先判断这个事件是否是我们需要的条件,如果是则继续下一步;
接下去根据自己的选择同时执行录像、删除无用的历史记录、循环抓图(比如要每隔0.5秒抓拍,一共抓拍20次),
同时在每次抓拍后,都会通过百度API进行人数统计,并保存抓拍的图片同时进行压缩优化处理,生成一张优化后的新图,
经过设定次数的抓拍后汇总所有的结果进行降序,并且比较第二位的数据是否大于0,
以此判断是否需要进一步的操作(这里的作用是排除掉一些误触事件)。如果是大于0,那么开始生成GIF图,
当GIF图制作完成后,发送企业微信消息,同时压缩GIF图。
当然这其中还包括了很多数据的传递过程这里就不一一说明了,有兴趣的自己一个个跟下去应该能看明白。

0、本流程的触发部分需要自己修改,流程核心是可以正常工作的。

1、我使用独立的nginx容器来实现gif图的外网访问,
跨容器间的数据共享需要映射相应的文件夹给nginx容器和iobroker容器(或者node-red的独立容器),
node-red保存的图片将写入到宿主机文件夹内,让nginx容器可以访问,实现外网访问。

例如:
宿主机(docker所在的操作系统)文件夹: /disk/camera
nginx容器映射: /config/www/camera
iobroker容器内置的node-red映射: /opt/iobroker/camera (node-red容器映射: /data/camera)

2、为了实现高效率的图像转换,需要convert支持,部分容器可能不带,需要手动安装,
在宿主机终端执行如下命令,进入容器控制台:

docker exec -it --user root iobroker(容器名字) /bin/bash

在容器控制台输入 convert -version 命令,查看是否有版本信息,
如果提示convert: not found,则需要先安装,分别执行如下命令:

sudo apt-get update
sudo apt-get -y install imagemagick

根据网络情况等待的时间不等,完成后再次执行 convert -version
如果打印版本信息则说明安装成功。

3、本流程正常工作可能需要安装的节点有:

node-red-contrib-image-output
red-contrib-time-photo-files
node-red-node-base64

如果提示缺少节点,请先安装。

那么,havefun!
flows 6.0.zip (12.2 KB)

小白设置失败了

怒赞:lol:lol:lol:lol:lol

你会设置了吗?教教我呗

我只是来get怎么合成gif的,前置触发条件各有各的不同

容器不带apt-get ,用npm安装后bash: convert: command not found

什么容器?得说清楚哦

ghcr.io/hassio-addons/node-red/aarch64

请问一下,我的node-red是在supervisor中安装的,然后就是部署流程时其他好像都可以就是报这个错/bin/bash: line 1: convert: command not found,
请问convert这个插件是应该在那个容器下安装,我在iobroker容器下安装没有用,还是包上面的错。我的底层系统是Debian,然后安装了docker,docker下安装homeassistant和supervisor,然后就是安装用supervisor安装了一些插件包括node-red,不过是不是需要安装node-red-vis这个节点??

看看是缺了那个节点

刚导入的时候提示缺少iobroker in ,然后我在里面搜iobroker只能搜到node-red-vis这个节点,还有就是流程会报错/bin/bash: line 1: convert: command not found 不知道需要在那个容器安装这个convert这个插件,还有就是iobroker.server静态文件服务我装好了,就是没法访问,不管是内网还是映射到外网去,怎么看他文件夹呢,iobeoker我是部署在docker里面的

iobroker那个是iobroker的节点,你用ha或者其他就得相对应替换啊

那我那个静态文件服务应该怎么弄呢,都没办法访问那个文件夹,我试图找到那个文件夹没找到
,还想请问一下,应该怎么弄

你的homeassistant装载什么地方呢?

安装了Debian11后安装docker然后安装的homeassistant和supervisor,nodered是supervisor里面的插件iobroker也是部署在docker里面的