小蚁摄像头
偶然找到一个闲置的小蚁云台摄像机,型号为Yi 1080p Dome,版本为15CN,虽然年代久远但是还可以正常使用,于是萌生了将其接入Home Assistant的想法。
小蚁摄像头需要接入“小蚁摄像头”APP,此摄像头的国行和美版各有限制,国行(CN)的机器只能使用中文商店的小蚁摄像头APP,US的机器需要使用 Yi Home APP。在APP中有实时串流、操控移动、全景照相、移动检测报警等功能,当然,还有云存储之类的功能,当然那是收费的(笑)
接入智能家居的办法是给摄像头刷入破解固件,使之除了能连接Yi Cloud还能支持本地rtsp
串流、支持ONVIF
、MQTT
和 ssh
等功能。摄像头视频流通过rtsp流接入Home Assistant和HomeKit,运动检测等通过MQTT接入
刷入固件
破解固件使用的是 Yi-Hack-V5,Github仓库为:alienatedsec/yi-hack-v5,由于摄像头年代久远,即便是V5固件仅有两年前的更新且仅有BETA版。
比较成熟的是yi-hack-v3和v4固件,都比较古老,但是v3不支持rtsp流(即便加上插件也不能正常使用),v4的rtsp流服务需要收费。。因此选择了提供免费rtsp流服务的v5这一测试版固件。
此固件仍为测试版固件,功能并未全部得到验证,此项目已经停更多日,且仍有较多未解决issue,请谨慎使用。
固件版本选择
按照github页面提供的表格,不同的机型下载Release中对应的不同的分区文件。
Camera | rootfs partition | home partition | Remarks |
---|---|---|---|
Yi Home 17CN / 27US / 47US | rootfs_y18 | home_y18 | Firmware files required for the Yi Home 17CN / 27US / 47US camera. |
Yi 1080p Home | rootfs_y20 | home_y20 | Firmware files required for the Yi 1080p Home camera. |
Yi Dome | rootfs_v201 | home_v201 | Firmware files required for the Yi Dome camera. |
Yi 1080p Dome | rootfs_h20 | home_h20 | Firmware files required for the Yi 1080p Dome camera. |
Yi 1080p Cloud Dome | rootfs_y19 | home_y19 | Firmware files required for the Yi 1080p Cloud Dome camera. |
Yi Outdoor | rootfs_h30 | home_h30 | Firmware files required for the Yi Outdoor camera. |
Github页面列出了可使用机型。
刷入流程
按照Github页面提供的步骤操作。
- 准备一张16GB左右大小的micro SD卡,格式化成FAT32格式。
- 将Release中下载的文件解压后,直接拷贝至SD卡根目录。
- 拔掉摄像头电源,插上SD卡,重新开机。
- 待黄灯闪烁30秒后,固件刷入完成,之后黄灯常亮大约2分钟。
- 之后蓝灯亮起,遵循常规步骤设置Wi-Fi和连接至APP
去路由器管理页面找到摄像头IP地址,打开摄像头的Web管理页面: http://[IP]:8080
功能设置
在Web管理页面可以设置摄像头的时区、ssh功能、运动检测录像功能、FTP自动上传等等功能的开启。
对于1080p dome机型,高负载下最好开启在SD卡创建SWAP文件。
- 开启FTP上传
默认开启当监测到运动时,自动录制1min的视频,由于存储卡只有32GB,可以将录制的视频及时转存到异地硬盘中。
设置通过FTP方式自动上传视频到服务器,并上传后删除SD卡内的文件。
如果本地文件未能及时删除,也可以在Web管理页面,通过可视化的 cron
手动设置定时删除文件。
RTSP流接入HA
在Web管理页面设置开启RTSP串流,设置画质
记录RTSP高画质的URL为 rtsp://[IP]/ch0_0.h264
在Home Assistant的设置文件 cofiguration.yaml
中添加通用摄像头:
camera:
- platform: generic
name: YiCam
stream_source: rtsp://[IP]/ch0_0.h264
验证配置文件后重启Home Assistant,可以看见摄像头实体。
MQTT 功能的接入
此固件支持使用MQTT方式将运动传感器、人类传感器、声音传感器和运动检测捕获的图片上传至MQTT broker。
HA端设置broker
确保Home Assistant装有Supervisor,我的是Home Assistant Supervised,使用docker安装。https://zhuanlan.zhihu.com/p/482610042
在Supervisor设置页面打开加载项商店,下载安装 Mosquitto broker
启动之后进入配置页面,可以添加新用户(如果不添加也可使用homeassistant默认账户),在login中添加:
- username: cam
password: camvhyimy@7805
开放端口无冲突保持默认即可。
摄像头端设置
在摄像头Web管理界面设置开启MQTT,填写MQTT broker server即Home Assistant服务器的IP、端口、账户密码。
点击此处进入新页面:
在此页面打开HA发现,这样可以减去在Home Assistant上的配置文件设置,在HA中可以自动发现并添加实体。
设置完成后返回Home Assistant,添加集成 MQTT
,服务器填写本地 127.0.0.1
,用户密码保持一致,添加MQTT集成。
重启HA后,会自动发现并添加实体:
三个二进制传感器为运动传感器、人类检测传感器和声音传感器,而且还有运动侦测时捕获的图片。
目前人类传感器和声音传感器无法正常工作,猜测是要在云端app中开启相应功能报警(可能吧,也可能是固件bug,不过目前我用不到就是)
配合运动传感器和捕获图片可以创建自动化,配合其他智能家居的联动。
桥接至Home Kit
将摄像头RTSP流、二进制传感器桥接至HomeKit,与https://zhuanlan.zhihu.com/p/535998824 配置过程相同:
根据*官方文档*1,摄像头、遥控器、电视、媒体播放器、锁等实体(
media_player
,remote
,lock
,camera
)不能直接桥接至HomeKit,需要设置成accessory添加至HomeKit。在UI界面中,可以通过HomeKit集成添加摄像头配件:
- 创建新的HomeKit集成,勾选上
Camera
,点击“提交”。HomeKit集成会自动将未加入HomeKit的摄像头添加成Accessory
- 之后会自动创建含有此摄像头的桥接(HASS Bridge),如若之前已建立过桥接,且包含此摄像头(
camera.XXX
实体),则可放心地删除自动新建的Bridge。
二进制传感器也需要通过桥接至HomeKit。
在HomeKit家庭中可见看到摄像头:
configuration 备份
# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:
# Text to speech
tts:
- platform: google_translate
- platform: edge_tts
language: zh-CN
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
camera:
- platform: generic
name: HW_cam_rtsp
stream_source: rtsp://moonhikari:vhyimy%[email protected]:8080/h264_pcm.sdp
username: moonhikari
password: vhyimy@7805
framerate: 30
- platform: generic
name: YiCam
stream_source: rtsp://192.168.50.158/ch0_0.h264
android_ip_webcam:
- host: 192.168.50.111
port: 8080
name: Hw_cam
username: moonhikari
password: vhyimy@7805
sensors:
- audio_connections
- battery_level
- battery_temp
- battery_voltage
- light
- motion
- pressure
- proximity
- sound
- video_connections
switches:
- exposure_lock
- ffc
- focus
- gps_active
- motion_detect
- night_vision
- overlay
- torch
- whitebalance_lock
- video_recording
motion_sensor: true
参考资料
- HomeKit.Accessory Mode - Home Assistant: https://www.home-assistant.io/integrations/homekit/#accessory-mode ↩