找回密码
 立即注册
查看: 16096|回复: 33

[新奇玩法] homekit 简易门铃搭建

  [复制链接]

8

主题

49

回帖

1188

积分

金牌会员

积分
1188
金钱
1131
HASS币
20
发表于 2022-4-1 23:01:03 | 显示全部楼层 |阅读模式
本帖最后由 qiaoqiao1235 于 2023-10-23 10:38 编辑

新增nodered流接入方式,比较简单,可以参考
非可视门铃接入homekit


背景:

家里米家和homekit双平台,手机都是iphone,每个房间有一个homepod mini,所以想要装一个支持homekit的门铃。
homekit本身是有标准可视门铃配件的,很强大。按门铃时,homepod会响,如果有apple tv电视上会弹出实时画面,手机也可以实时通知预览。

分析:
分析了现有的几种门铃接入homekit的情况
×1.原生homekit门铃
问题:需要直接供电,价格贵,种类少,Logic Circle View Doorbell等。有条件可以上,可以用HomeKit Secure Video。

×2.米家门铃接入:
可行性:买了一个小米门铃3,可以通过xiaomi miio auto 接入。
问题:产品本身问题:关联了小爱音箱了但是显示门铃画面特别慢;室内要插单独一个门铃接收器为了实时响铃;全程云端存储,不支持本地;电池供电,只有人经过、按门铃才会可控,其他时候断网,切换成普通模式效果也不好。
接入hass问题:只可以云端接入,没有本地方式;只可以获取记录视频的最后一帧画面,没有视频;门铃按钮、人体传感器无法有效工作。基本不可用。

×3.其他成品可视门铃
可行性:包括ring、eufy、nest等,homebridge有插件可以直接接入;国内其他几家的没试过。
问题:不容易买,价格贵,其中电池供电设备的可用性不太确定。

√4.自制门铃
可行性:接入第三方相机或者创建一个fake camera,关联一个按钮,关联一个人体传感器就可以了。
问题:不支持HomeKit Secure Video。(scrypted可以支持,可以研究下)

结论
经过对比,当前计划按照方案4来尝试。


                               
登录/注册后可看大图


方案:
需要材料:实体开关(必须,按钮比如aqara智能开关,米家那个有点丑);能接入hass的摄像机(可选,一般支持rtsp、onvif即可);人体传感器(可选,如果摄像头本身支持就不需要这个了)。
按照场景来分:
  • 支持按门铃,homepod会响,电视、手机弹出通知——需要开关
  • 支持按门铃,homepod会响,电视、手机弹出实时画面——需要开关、摄像头
  • 支持按门铃,homepod会响,电视、手机弹出实时画面,支持人体检测——需要开关、摄像头、人体传感器


一.支持按门铃,homepod会响,电视、手机弹出通知
1.新建一个静态图片的fake camera
参考:https://www.home-assistant.io/integrations/generic/
在/config/www下放入 your_image.png,如果没有www请新建,放入后重启hass,在浏览器打开https://IP:8123/local/your_image.png可以看看是否正常
在/config下新建camera.yaml
- platform: generic
name: doorbell
still_image_url: https://127.0.0.1:8123/local/your_image.png
verify_ssl: false
2.将按钮转换成一个binary sensor
在/config下新建bianry_sensor.yaml
因为linked_doorbell_sensor关联的只可以是binary sensor,通常添加的按钮可能是一个action,需要通过模板转换一下。 aqara button会有single、hold、release等几种状态,我只要识别单击就认为有人按门铃即可,所以配置 on:single,其他按钮根据自己情况适配,可以看一下添加完成按下去之后的二元传感器状态是否符合预期。
- platform: template
  sensors:
    doorbell_switch:
      friendly_name: Doorbell Button
      value_template: "{{ is_state('sensor.0x00158d0001b92d08_action', 'single') }}"

3.新增homekit设备
在/config下新建homekit.yaml
使用accessory模式新增一个homekit设备(相机只可以用accessory mode),包括相机,配置关联的按钮
- name: Doorbell
  mode: accessory
  filter:
    include_entities:
      - camera.doorbell
  entity_config:
      camera.doorbell:
        name: Doorbell
        support_audio: false
        linked_doorbell_sensor: binary_sensor.doorbell_switch

4.修改configuration.yaml
将camera、binary_sensor、homekit都包含进去
camera: !include camera.yaml
binary_sensor: !include binary_sensor.yaml
homekit: !include homekit.yaml

5.重启
重启后,home扫描通知中的配对码新增配件就可以了。

进阶:fake相机不仅可以显示静态图片,也可以显示天气或者地图(一般动态刷新的)
显示天气参考https://developer.yr.no/doc/guides/deprecating-old-widgets/ 获取svg地址
按照如下配置修改:
- platform: generic
    name: Weather
    still_image_url: https://www.yr.no/en/content/1-72837/meteogram.svg
    content_type: "image/svg+xml"
Snipaste_2022-04-01_22-51-27.png
显示地图参考https://lbs.amap.com/api/webservice/guide/api/staticmaps/ 获取静态地图地址
建议使用高德的,google的现在比较麻烦。高德需要申请开发者api,获取key参考:https://lbs.amap.com/api/webservice/guide/create-project/get-key
按照如下配置修改:
- platform: generic
name: Map
still_image_url: https://restapi.amap.com/v3/staticmap?location=116.481485,39.990464&zoom=10&size=750*300&markers=mid,,A:116.481485,39.990464&key=<用户的key>
limit_refetch_to_url_change: true
Snipaste_2022-04-01_22-51-08.png

二、支持按门铃,homepod会响,电视、手机通知弹出实时画面
在方案一的基础上修改一下camera.yaml需要真实的相机。目的是支持视频流即可,其他不变
可以使用其他任何办法把相机接入进hass,把homekit配置文件修改成对应的相机实体即可,相机如何添加请自行搜索。
- platform: generic
    name: doorbell
    username: user
    password: pass
    stream_source: rtsp://user:[email protected]:554


三、支持按门铃,homepod会响,电视、手机弹出实时画面,支持人体检测
在方案一或者方案二的基础上修改homekit.yaml,添加一条配置 linked_motion_sensor。
有的相机添加进来就自带传感器了就可以直接使用那个,onvif接入一般会支持事件通知。没有的话就单独关联一个自己安装的也可以。
- name: Doorbell
mode: accessory
filter:
include_entities:
- camera.doorbell
entity_config:
camera.doorbell:
name: Doorbell
support_audio: false
linked_doorbell_sensor: binary_sensor.doorbell_switch
linked_motion_sensor: binary_sensor.0x00158d000549bb6e_motion
其实如果没有实时画面我觉得人体传感器意义不大,检测到人也看不到……



                               
登录/注册后可看大图



我当前使用的是方案一,因为门前没有办法供电接摄像头,主要就是想有人按门铃,homepod和手机会提醒就够了。
成本很低,几十块,一个开关。就算使用方案3,人体传感器+一个tplink的摄像头最多也就200块左右。
使用效果达到预期,延迟很低,homepod的功能又可以+1了。

2022-04-01 22.56.48.png

2022-04-01 22.56.12.png

2022-04-01 22.48.24.png















评分

参与人数 2金钱 +25 HASS币 +10 收起 理由
allenalex + 5 论坛有你更精彩!
+ 20 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

8

主题

686

回帖

4701

积分

论坛元老

积分
4701
金钱
4002
HASS币
0
QQ
发表于 2022-4-1 23:47:43 | 显示全部楼层
好后学习一下
回复

使用道具 举报

27

主题

2126

回帖

9111

积分

论坛元老

积分
9111
金钱
6953
HASS币
30

论坛元老

发表于 2022-4-2 08:58:07 | 显示全部楼层
实际问题是,我自己测试萤石rstp通过ha接入homekit,摄像头图像加载过程特别慢,加载成功之后很流畅,不晓得为啥
回复

使用道具 举报

41

主题

2162

回帖

8584

积分

元老级技术达人

积分
8584
金钱
6366
HASS币
110
发表于 2022-4-2 09:12:06 | 显示全部楼层
同3L 摄像头加载慢
我是433门铃+论坛模块一个空的接口,其状态变化后触发自动化 通知ios+实时截图,点击可查看画面
回复

使用道具 举报

40

主题

3016

回帖

1万

积分

超级版主

Nero

积分
11150
金钱
8044
HASS币
182
发表于 2022-4-2 10:12:58 | 显示全部楼层
情非殇 发表于 2022-4-2 08:58
实际问题是,我自己测试萤石rstp通过ha接入homekit,摄像头图像加载过程特别慢,加载成功之后很流畅,不晓 ...

得H264 homekit不支持 265推送(因为要给专利费)。然后 homeassistant 里面编码选 copy 就好了。速度很快。即使外网也可以做到3秒出视频。海康的需要关掉 smart264
Nero
回复

使用道具 举报

3

主题

151

回帖

1857

积分

金牌会员

积分
1857
金钱
1703
HASS币
10
发表于 2022-4-2 12:37:57 | 显示全部楼层
好贴  回去再看
回复

使用道具 举报

0

主题

154

回帖

1437

积分

金牌会员

积分
1437
金钱
1283
HASS币
0
发表于 2022-4-2 13:56:21 | 显示全部楼层
neroxps 发表于 2022-4-2 10:12
得H264 homekit不支持 265推送(因为要给专利费)。然后 homeassistant 里面编码选 copy 就好了。速度很 ...

大佬,“homeassistant 里面编码选 copy 就好了”   这个编码是在哪里,没找到,请告诉下吧
回复

使用道具 举报

35

主题

382

回帖

2695

积分

金牌会员

积分
2695
金钱
2278
HASS币
10
发表于 2022-4-2 13:59:43 | 显示全部楼层
这个好,感谢楼主
回复

使用道具 举报

40

主题

3016

回帖

1万

积分

超级版主

Nero

积分
11150
金钱
8044
HASS币
182
发表于 2022-4-2 14:14:54 | 显示全部楼层
taioner 发表于 2022-4-2 13:56
大佬,“homeassistant 里面编码选 copy 就好了”   这个编码是在哪里,没找到,请告诉下吧 ...

https://www.home-assistant.io/integrations/homekit/#video_codec
Nero
回复

使用道具 举报

27

主题

2126

回帖

9111

积分

论坛元老

积分
9111
金钱
6953
HASS币
30

论坛元老

发表于 2022-4-2 15:28:43 | 显示全部楼层
neroxps 发表于 2022-4-2 10:12
得H264 homekit不支持 265推送(因为要给专利费)。然后 homeassistant 里面编码选 copy 就好了。速度很 ...

都弃坑了,N大一句话让我又焕发第二春了,我晚上回家试试

rtsp://用户名:密码@IP地址/h264/ch01/main/av_stream,我是用这种代码接入的,

局域网hass界面打开也有几秒响应延迟,而且视频流又延迟

hk打开要加载半分钟一分钟,但是加载出视频流反而0延迟。

……
  camera:
    video_codec: copy

只附加这个参数就好了么
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 15:02 , Processed in 0.091758 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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