『瀚思彼岸』» 智能家居技术论坛

标题: 【可视门铃】摄像头流推送到电视或者安卓平板中控的教程 [打印本页]

作者: jsfer888    时间: 2023-2-28 23:59
标题: 【可视门铃】摄像头流推送到电视或者安卓平板中控的教程
本帖最后由 jsfer888 于 2023-3-1 10:45 编辑

实现效果:
1、在看电视的时候,门口有人按门铃,摄像头实时画面弹窗推送到电视,以画中画的形式弹出
2、使用安卓平板中控,门口有人按门铃,摄像头实时画面以浮窗的形式推送到平板

具体样式如图所示:
[attach]45770[/attach][attach]45771[/attach]





前置要求:摄像头需要接入HA,并且成功安装WebRTC插件
推送到电视:
1、要求是安卓电视,或者安卓电视盒子,电视上安装下方附件中的pipup.apk软件,然后通过adb连接电视运行ADB命令:adb shell appops set nl.rogro82.pipup SYSTEM_ALERT_WINDOW allow   这串命令主要是让pipup这个app能够显示在其他应用上层(切记一定要赋予权限)
2、电视上打开刚刚安装的app,应该会显示服务已运行<IP地址:7979>,意思是在pipup服务在电视的7979端口运行;
3、在HA的配置文件中添加一行:rest_command: !include rest_commands.yaml,然后再HA的根目录下新建rest_commands.yaml文件;
4、将下面的代码粘贴到rest_commands.yaml文件中,记得修改其中的IP地址为你电视的IP
  1. pipup_image_on_tv:
  2.   url: http://你电视的IP地址:7979/notify
  3.   content_type: 'application/json'
  4.   verify_ssl: false
  5.   method: 'post'
  6.   timeout: 20
  7.   payload: >
  8.     {
  9.       "duration": {{ duration | default(20) }},
  10.       "position": {{ position | default(0) }},
  11.       "title": "{{ title | default('') }}",
  12.       "titleColor": "{{ titleColor | default('#50BFF2') }}",
  13.       "titleSize": {{ titleSize | default(10) }},
  14.       "message": "{{ message }}",
  15.       "messageColor": "{{ messageColor | default('#fbf5f5') }}",
  16.       "messageSize": {{ messageSize | default(14) }},
  17.       "backgroundColor": "{{ backgroundColor | default('#0f0e0e') }}",
  18.       "media": {
  19.         "image": {
  20.           "uri": "{{ url }}",
  21.           "width": {{ width | default(640) }}
  22.         }
  23.       }
  24.     }


  25. pipup_url_on_tv:
  26.   url: http://你电视的IP地址:7979/notify
  27.   content_type: 'application/json'
  28.   verify_ssl: false
  29.   method: 'post'
  30.   timeout: 20
  31.   payload: >
  32.     {
  33.       "duration": {{ duration | default(20) }},
  34.       "position": {{ position | default(0) }},
  35.       "title": "{{ title | default('') }}",
  36.       "titleColor": "{{ titleColor | default('#50BFF2') }}",
  37.       "titleSize": {{ titleSize | default(10) }},
  38.       "message": "{{ message }}",
  39.       "messageColor": "{{ messageColor | default('#fbf5f5') }}",
  40.       "messageSize": {{ messageSize | default(14) }},
  41.       "backgroundColor": "{{ backgroundColor | default('#0f0e0e') }}",
  42.       "media": {
  43.         "web": {
  44.           "uri": "{{ url }}",
  45.           "width": {{ width | default(640) }},
  46.           "height": {{ height | default(480) }}
  47.         }
  48.       }
  49.     }
复制代码
5、修改完配置文件以后记得重启HA,然后到开发者工具的服务里应该能够找到rest_command.pipup_image_on_tv 和 rest_command.pipup_url_on_tv 这2个服务,其中rest_command.pipup_image_on_tv这个服务是可以推送图片到电视,rest_command.pipup_url_on_tv 这个服务是可以推送视频链接到电视;
6、前置要求里说了要将摄像头接入到HA,而且要使用WebRTC插件其实不是必须(因为我是这么做的),接下来写一个脚本来触发推送:
  1. alias: 推送到电视
  2.   mode: single
  3.   variables:
  4.     link_id: '{% for _ in range(40) %}{{ range(10)|random }}{% endfor %}'
  5.   sequence:
  6.   - service: webrtc.create_link
  7.     data:
  8.       link_id: '{{ link_id }}'
  9.       entity: 你的摄像头
  10.       open_limit: 1
  11.       time_to_live: 60
  12.   - service: rest_command.pipup_url_on_tv
  13.     data:
  14.       title: 标题
  15.       message: 消息
  16.       width: 640
  17.       height: 480
  18.       url: 你HA的地址带:8123/webrtc/embed?url={{ link_id }}&webrtc=false
复制代码
这个脚本的意思是2步,第一步是使用WebRTC插件的webrtc.create_link服务建立一个视频链接,第二步是使用rest_command.pipup_url_on_tv这个服务将视频链接推送到电视上;具体脚本设置如下图所示:
[attach]45778[/attach]
这里是app下载=====>[attach]45777[/attach]



推送到安卓平板:为什么需要推送到安卓平板,是因为上面的那个pipup软件在我的 盒子上安装了以后无法使用,app无法打开,我家里使用了一个酒店盒子做了floorplan中控,可以很方面看到整个家里的情况,然后还能够通过语音(贾维斯)控制HA的设备,可以接入chatgpt提高智商,可玩性很强,关于这个盒子我也有单独写一个帖子,有兴趣的可以移步查看:【酒店盒子】给智能音箱接入Chatgpt,对话,画画样样在行


1、平板必须开启无线ADB,并且在HA里通过Android TV集成接入;
2、平板上安装float悬浮浏览器,并将float悬浮浏览器设置为系统默认浏览器,并给float浏览器在其他应用上层显示的权限(文件在下方附件);
3、在HA制作推送到平板的脚本,具体请参考下图,记得修改代码中的参数为你自己的信息;还是分成2步,第一步是通过WebRTC插件的webrtc.create_link服务生成视频链接,第二步是通过Android TV的androidtv.adb_command服务进行adb脚本执行:后续执行脚本,就可以进行推送了;
  1. service: webrtc.create_link
  2. data:
  3.   link_id: "{{ link_id }}"
  4.   entity: 你的摄像头实体
  5.   open_limit: 1
  6.   time_to_live: 60
复制代码
  1. service: androidtv.adb_command
  2. data:
  3.   command: >-
  4.     am start -a android.intent.action.VIEW -d
  5.     'http://你的HA链接:8123/webrtc/embed?url={{ link_id }}&webrtc=false'
  6. target:
  7.   entity_id: 你的平板实体ID
复制代码
[attach]45779[/attach]


其中的一些参数可以自己根据实际情况调整;

Float悬浮浏览器下载:[attach]45780[/attach]

好了,接下来就是自动化的流程了,门口有人按门铃,如果正在看电视就推送到电视,如果没有在电视就推送到中控等等大家根据实际需求制作相应的自动化流程。

另外如果不需要视频流的推送,仅需要文字信息的推送则可以使用HA自带的Notifications for Android TV / Fire TV 集成,在电视上或者平板上下载Notifications for Android TV / Fire TV这个app,并简单设置,在HA的服务中使用notify服务就可以进行文字信息推送,非常方便


作者: wangmucha    时间: 2023-3-1 01:10
厉害了 之前一直找这个方法,我之前用tasker方法用海康的4500软件弹窗
作者: euking    时间: 2023-3-1 08:43
请问摄像头怎么接入HA
作者: jsfer888    时间: 2023-3-1 08:54
euking 发表于 2023-3-1 08:43
请问摄像头怎么接入HA

有rtsp流的话可以使用Generic Camera这个集成接入
作者: usrusr22    时间: 2023-3-1 08:55
论坛大气多,这种方法教能想到。赞楼主。
作者: 紫·HA    时间: 2023-3-1 09:01
感谢大佬分享
作者: Ari    时间: 2023-3-1 09:39
大佬啊,感谢分享!这个太牛了
作者: xiaohuoya888    时间: 2023-3-1 09:40
感谢分享
作者: lrving163    时间: 2023-3-1 10:35
这个实用,顶下。
作者: bugensui    时间: 2023-3-1 11:21
Notifications for Android TV / Fire TV 集成 好像已经不可以用了
作者: jsfer888    时间: 2023-3-1 11:39
bugensui 发表于 2023-3-1 11:21
Notifications for Android TV / Fire TV 集成 好像已经不可以用了

可以哈 目前我还在使用
作者: bugensui    时间: 2023-3-1 11:41
jsfer888 发表于 2023-3-1 11:39
可以哈 目前我还在使用

目前,我的是电视,不是盒子,只能打开应用,才能收到通知,
作者: psd456789    时间: 2023-3-1 15:09
我的小米电视  Notifications for Android TV / Fire TV  这个APP 不会自动启动,而且手动打开软件再退出,不会在后台运行。
作者: 529616965    时间: 2023-3-1 17:02
感谢分享
作者: weiyongwill    时间: 2023-3-2 09:03
这个真厉害,实现了好久之前的想法
作者: crazychen    时间: 2023-3-3 07:39
你好,红米电视安装提示成功,可就是不显示app图标呀?
作者: Spending5027    时间: 2023-3-3 16:39
厉害了,感谢分享
作者: ghostist    时间: 2023-3-3 17:28
mark 待玩~
作者: TOSHINOU    时间: 2023-3-4 17:52
感谢分享
作者: xiaomeng    时间: 2023-3-4 19:19
收藏备用
作者: kaka0992    时间: 2023-3-6 19:01
厉害了我的歌
作者: MX10085    时间: 2023-3-6 21:59
这个可以有
作者: powjie    时间: 2023-3-7 11:29
学习了,感谢分享
作者: ab123456248    时间: 2023-3-7 12:07
叮咚门锁带摄像头怎么接入ha?
作者: 25989406    时间: 2023-3-7 13:43
请问你用的哪款门铃?竟然可以走WebRTC
作者: jsfer888    时间: 2023-3-7 14:14
25989406 发表于 2023-3-7 13:43
请问你用的哪款门铃?竟然可以走WebRTC

就是普通的摄像头
作者: dongjianwei    时间: 2023-3-7 17:08
可惜的是很多智能门铃或者门锁,都是不带RSTP的。。这样的话,门口只能安装一个大大的摄像头~
作者: joechen36    时间: 2023-3-7 21:35

这个实用,顶下。

作者: ssspp    时间: 2023-3-7 22:17
谢谢开源
作者: zzwh    时间: 2023-3-12 08:49
收藏备用
作者: hyq    时间: 2023-3-23 10:12
大佬!电视盒子是安卓4版本不能安装app有其他办法没有?
作者: skycity    时间: 2023-6-16 00:04
pipup软件打开命令补充 开发者工具 Android Debug Bridge: ADB command服用调用命令  ps -ef | grep -v grep | grep pipup || am start nl.rogro82.pipup/.MainActivity
作者: Mr.G    时间: 2023-6-16 08:13
海信电视不知道为什么投屏上去以后是空白的,不能打开监控,右上角显示一个空白的窗口,但是下面标题和消息内容能显示, 我测试过在电脑上打开推送的URL就能打开监控视频, 是海信电视不支持播放这个视频链接吗?
作者: summ99111    时间: 2023-7-26 10:12
收藏备用,以后安了门铃再用
作者: Harden    时间: 2023-7-26 10:56
如果电视是连着AppleTV在看,还能推送吗?用着hdmi的信号源
作者: win741852    时间: 2023-11-12 22:53
感谢楼主 这下省的专门买配套了 下来试试看
作者: nuzmz    时间: 2023-11-16 15:57
功能强大
作者: 1037709000    时间: 2023-12-4 00:56
你好,同红米电视安装提示成功,就是不显示app图标
作者: cyl1995    时间: 2023-12-11 17:00
1111111111111111111111111111111111111
作者: Mr.G    时间: 2023-12-11 17:43
请问下楼主,有没有遇到投屏上去右上角空白的问题,我到pipup原作者的github上看到有人也跟我同样的问题:https://github.com/rogro82/PiPup/issues/54   也是空白的问题, 我确定我的链接在电脑端浏览器可以正常访问,就是到了电视上就不行了,尝试用电视自带的浏览器播放那个链接 也是空白的,啥都没有, 我看到github上有人说之前是正常的,不知道更新了ha版本,还是go2rtc/webrtc后就不行了,请问楼主有解决办法吗? 我把他们github他们修改过的pipup所有版本都尝试了个遍,依然无果!
在这里说下,我不止是海信电视这样,家里的亿格瑞A9,还有另外的机顶盒,全部都是同样的问题,都是右上角白屏,  

作者: 中国兴隆    时间: 2023-12-16 19:33
Mr.G 发表于 2023-6-16 08:13
海信电视不知道为什么投屏上去以后是空白的,不能打开监控,右上角显示一个空白的窗口,但是下面标题和消息 ...

你的摄像头视频编码是不是H265,可以修改成H264的试试,能否分享下你的详细代码,我按上面操作就不能弹出pipup,这个给了权限和后台了

下面这个命令要加吗?加在哪里
pipup软件打开命令补充 开发者工具 Android Debug Bridge: ADB command服用调用命令  ps -ef | grep -v grep | grep pipup || am start nl.rogro82.pipup/.MainActivity
作者: Mr.G    时间: 2023-12-16 23:19
中国兴隆 发表于 2023-12-16 19:33
你的摄像头视频编码是不是H265,可以修改成H264的试试,能否分享下你的详细代码,我按上面操作就不能弹出 ...

改为h264了,没用
作者: zheng1112    时间: 2024-4-23 23:04
先回复标记一下,等有了摄像头在来学习。
作者: cycle    时间: 2024-4-24 14:08
感谢分享
作者: xiaobei    时间: 2024-7-4 12:00
tail厉害了
作者: sonic056    时间: 2024-7-4 14:28
感谢大佬分享
作者: guoqiang881245    时间: 2024-7-5 16:30
大佬 有RTSP流地址 但是怎么把取流的摄像头变成一个实体来用呢


/**
* Linux常用命令:pwd 显示用户当前所在的目录
* 不是别人,是我,承认了你的价值
* Link https://greasyfork.org/zh-CN/scripts/396933-hostloc-zsbd
*/
作者: guoqiang881245    时间: 2024-7-6 09:40
哈六阿达阿道夫大师赛发的发的发大水发的


/**
* Linux常用命令:pwd 显示用户当前所在的目录
* 故事开始便不承认普通
* Link https://greasyfork.org/zh-CN/scripts/396933-hostloc-zsbd
*/
作者: guoqiang881245    时间: 2024-7-6 11:53
Mr.G 发表于 2023-12-11 17:43
请问下楼主,有没有遇到投屏上去右上角空白的问题,我到pipup原作者的github上看到有人也跟我同样的问题:h ...

你搞定没有 我的退出APP就不显示画面了,而且是有窗口不能播放内容
作者: maojing    时间: 2024-7-9 21:19
感谢楼主,学习了
作者: lovelyelfpop    时间: 2024-11-11 13:28
小米电视 杀后台严重 不能用。ADB也是每次都得开
作者: 15063641235    时间: 2025-2-14 09:11
大佬我的提示:调用资源“http://192.168.110.18:7979/notify”时发生客户端错误,是怎么回事,安卓tv能连上,
作者: guoqiang881245    时间: 2025-3-12 09:25
退出应用就收不到弹窗了 ,此方法不适用我的电视

作者: niaoge    时间: 2025-4-10 22:11
我能出视频流图像,但是无法控制画面的高度,指定高度值就显示不了,不知什么原因
作者: niaoge    时间: 2025-4-10 22:28
大佬,我为什么指定视频画面的高度值后,视频就显示不了呢,指定宽度值没问题,但是不指定定高度值整个视频推过来后是整个电视画面的高度,图像就变形了




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5