找回密码
 立即注册

微信扫码登录

搜索
查看: 167|回复: 9

[进阶教程] 利用AI分析摄像头/门铃视频并识别场景执行自动化

[复制链接]

9

主题

272

回帖

2540

积分

论坛技术达人

积分
2540
金钱
2239
HASS币
90
发表于 12 小时前 | 显示全部楼层 |阅读模式
本帖最后由 anlong 于 2025-8-18 11:46 编辑

Camera Recording and Explain

操作步骤:

  1. 摄像头/门铃通过Xiaomi Miot Auto接入Home Assistant
  2. 安装AI Conversation Agent集成
    • 要求HA版本 2025.8 及以上
    • HACS一键安装
    • 安装命令: wget -O - https://get.hacs.vip | DOMAIN=ai_conversation REPO_PATH=hasscc/ai-conversation ARCHIVE_TAG=main bash -
  3. 添加保存录像脚本
    # configuration.yaml
    shell_command:
      # other commands ...
      save_xiaomi_video: |
        bash -c '
          mp4="{{ name|default('latest') }}.mp4"
          dir="{{ dir|default('/media/camera',true) }}"
          mkdir -p "$dir" && cd "$dir"
          script=/config/custom_components/xiaomi_miot/scripts/save_xiaomi_video.sh
          if [ -f "$script" ]; then
            bash "$script" "{{ url }}" "$mp4"
          else
            ffmpeg -y -i "{{ url }}" -c copy "$mp4"
          fi
          ls *.mp4 | sort | head -n -{{ keep|default(100) }} | xargs rm -vf
          if [ -n "{{ img }}" ]; then
            curl -o "{{ name|default('latest') }}.jpg" "{{ img }}"
            ls *.jpg | sort | head -n -{{ keep|default(100) }} | xargs rm -vf
          fi
        '

    由于小米摄像机/门铃看家助手提供的hls流在通过ffmpeg转换成mp4时会出错,仅能保存第一个切片(5秒内),因此提供了save_xiaomi_video.sh脚本,该脚本会逐个转换每个ts切片最后拼接成完整mp4,该脚本已随着v1.0.17版本一起发布了。

  4. 重启 Home Assistant
  5. 添加AI视觉模型
    1. 免费视觉模型申请并获取ApiKey
    2. 添加AI账号配置
    3. 添加对话模型 (推荐智谱AI的免费模型: glm-4.1v-thinking-flash)
  6. 导入蓝图
  7. Telegram永久保存视频回放(如不需要可跳过)

    需要特殊网络环境

    1. 通过BotFather创建一个机器人并获取token
    2. 创建一个私人群组并添加机器人为管理员
    3. 通过GetIDs Bot获取群组ID (如果你获得的群组ID不是-开头的,一段时间后可能会变)
    4. 在HA中配置Telegram Bot集成
    5. +添加允许的聊天标识符
  8. 通过蓝图创建自动化
    alias: Camera Recording and Explain
    description: 利用AI分析摄像头/门铃视频
    use_blueprint:
      path: gitee.com/camera-recording-notify.yaml
      input:
        camera: camera.isa_hlc7_xxxx_camera_control
        mihome_notify: sensor.mi_xxxxyyyy_message
        mihome_notify_kwd: 门铃
        save_dir: /media/camera
        keep_num: 20
        video_events:
          ObjectMotion: 画面变动
        notify_action:
          - action: ai_conversation.explain_media
            data:
              entity_id: conversation.agent_glm_4_1v_thinking_flash
              video: "{{ mp4_path }}"
              prompt: 这是我家门铃录制的视频。分析并简单总结一下,重点描述人物特征及行为。
              tags:
                - 回家
                - 离家
                - 敲门
                - 按门铃
                - 快递员
                - 外卖员
            response_variable: ai_result
          - parallel:
              - if:
                  - alias: AI正常回复
                    condition: template
                    value_template: "{{ '敲门' in ai_result.tags }}"
                then:
                  - alias: 推送通知到手机上
                    action: notify.mobile_app_your_iphone
                    data:
                      title: "{{ home_name }}{{ camera_device_name }}"
                      message: "{{ ai_result.message or event }}"
                      data:
                        video: "{{ mp4_path }}"
                        image: "{{ img_path }}"
                        url: /config/devices/device/{{ camera_device_id }}
                        actions:
                          - action: URI
                            title: 打开米家
                            uri: "{{ app_link }}"
                          - action: none
                            title: 我知道了
                        push:
                          tag: "{{ camera_entity_id }}"
              - alias: 发送视频到TG群永久保存回放
                action: telegram_bot.send_video
                data:
                  config_entry_id: xxxyyyzzz # Telegram Bot 配置条目ID
                  target: -1234567890 # 群组/会话ID
                  # message_thread_id: xxxx # 话题ID
                  file: "{{ mp4_path.replace('/local','') }}"
                  caption: |-
                    #{{ home_name }} #{{ camera_device_name }} #{{ event }}
                    {{ ai_result.tags_string|default('') }}
                    {{ ai_result.message }}
                  parse_mode: plain_text
                response_variable: tg_result

    Camera Recording and Explain

评分

参与人数 3金钱 +48 收起 理由
se7en + 20 论坛有你更精彩!
laojimigu + 8 膜拜大神!
dscao + 20 感谢楼主分享!好用!

查看全部评分

小米MIoT插件:miot-spec.com
回复

使用道具 举报

23

主题

122

回帖

775

积分

高级会员

积分
775
金钱
630
HASS币
0
发表于 11 小时前 来自手机 | 显示全部楼层
视觉模型是体验?还是永久免费
回复

使用道具 举报

9

主题

272

回帖

2540

积分

论坛技术达人

积分
2540
金钱
2239
HASS币
90
 楼主| 发表于 10 小时前 | 显示全部楼层
gky008 发表于 2025-8-18 12:17
视觉模型是体验?还是永久免费

永久免费
小米MIoT插件:miot-spec.com
回复

使用道具 举报

43

主题

510

回帖

3280

积分

论坛元老

积分
3280
金钱
2727
HASS币
10
发表于 9 小时前 | 显示全部楼层
感谢,有空体验一下
回复

使用道具 举报

1

主题

71

回帖

722

积分

高级会员

积分
722
金钱
645
HASS币
20
发表于 9 小时前 | 显示全部楼层
感谢大佬分享 马上试试
回复

使用道具 举报

7

主题

285

回帖

3242

积分

论坛元老

积分
3242
金钱
2950
HASS币
0
发表于 8 小时前 | 显示全部楼层
我的小米门铃是不知道能不能用。接入后只有一个传感器显示不可用
设备信息
madv.cateye.miowl
制造商:madv
固件:1.1.18_5827 ☁️
回复

使用道具 举报

9

主题

272

回帖

2540

积分

论坛技术达人

积分
2540
金钱
2239
HASS币
90
 楼主| 发表于 4 小时前 | 显示全部楼层
ilongjiang 发表于 2025-8-18 15:45
我的小米门铃是不知道能不能用。接入后只有一个传感器显示不可用
设备信息
madv.cateye.miowl

这款门铃有点老,如果HA中看不到门铃截图就不支持
小米MIoT插件:miot-spec.com
回复

使用道具 举报

1

主题

71

回帖

722

积分

高级会员

积分
722
金钱
645
HASS币
20
发表于 3 小时前 | 显示全部楼层
感谢~已经用上了,视频短的时候效果不错
但是我发现视频有多个切片的时候拼接会出问题,组合出的视频只有第一部分是正常的,后面会变花屏.
目前把save_xiaomi_video中的-c copy "$seg"改成-c:a copy "$seg" 可以正常使用了.
但是这样需要重新编码,对硬件的要求提高了
回复

使用道具 举报

14

主题

1619

回帖

5332

积分

论坛元老

积分
5332
金钱
3699
HASS币
0
发表于 3 小时前 | 显示全部楼层
哈哈哈,这个用起来某些人可能会瑟瑟发抖
回复

使用道具 举报

1

主题

40

回帖

266

积分

中级会员

积分
266
金钱
225
HASS币
0
发表于 28 分钟前 | 显示全部楼层
如果门铃可以实现,是不是小米摄像头也可以实现,我出门的时候会打开摄像头,主要家里有猫咪在,然后是不是可以录像,分析我出门后猫一天的生活轨迹,哈哈哈哈但是隐私全被暴露了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 23:50 , Processed in 0.442186 second(s), 11 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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