fanxiong 发表于 2023-8-22 16:15:22

控制电视观看时间的流(已更新控制方式)

本帖最后由 fanxiong 于 2023-8-23 08:45 编辑

       暑假期间,为防止小孩看电视太久,设置了小米电视的儿童模式,但功能太弱鸡了,它允许设置每次观看时长和一天观看总时长,但是在一次观看时间达到上限锁屏后,到解除锁屏只间隔了5分钟,也不能更改间隔时间。间隔五分钟还不是等于没有限制吗?况且还有更坑的,一天总的观看时长用完后,电视锁屏,这时按关机键提示“请解锁后使用该功能”,不看了关机还得输入密码才行,佩服小米电视的脑C设计。       另外,小米电视5开机后,不管有没有播放视频,电视状态都是idle(原来的康佳电视状态有idle、playing、pause),获取的APP名称也始终是桌面,不能精细化管理控制。
       吐槽完了,还是自己写一个控制电视的流程得了,还是自己最懂自己的需求。

       先介绍一下背景:我是在电视盒子CM211-1上安装的docker版homeassistant,电视是小米电视5,带有小爱功能,所以流程中的TTS是通过电视小爱发出的。
       控制逻辑是这样的:当限制功能启用时,检测到电视开机,则TTS语音提醒当前允许观看剩余时间XX分钟(若已用完观看时间则提醒还有XX分钟才能观看);在观看过程中,剩余观看时间为10分钟、5分钟、1分钟以及关机时都会TTS语音提醒;当观看时间用尽时,则返回电视主页,并且30秒后关机;若家长额外允许观看时间,则在倒计时输入框内输入额外允许的时间,则系统会放开限制,直到倒计时结束,清零额外允许时间,并再次限制电视。

新的电视控制流程图



       与流程配套的需求有:一个启用限制功能的按钮,用来开启或关闭限制功能;一个 允许观看时间的输入框,用来设置在4个小时内允许观看电视的时间(滚动更新);还有一个 倒计时输入框,用来设置额外的允许观看时间;一个历史记录传感器,记录电视在4个小时内的总观看时间,0.01小时即36秒更新一次。


       目前存在的问题:
       ①由于小米电视没有playing状态,只有开关机状态,因此不能精确判断电视是否在播放,只能认为开机就是在观看,所以数据不一定准确。
       ②目前流程中电视的控制是通过ADB发送遥控器键码方式实现的,但是电视重启后ADB会自动关闭,影响使用体验。本准备用小爱语音控制,但是今天看到了小米协议控制,待试验成功后再更新流程吧。本条已经解决,使用spec协议控制电视,不惧ADB关机失效。


=======================================================================================================================================================
有朋友问电视当前观看时间是怎么获取的,我是参考论坛前辈的帖子,在configuration.yaml文件中加入了历史记录传感器记录电视观看时间的,内容如下:
sensor:
- platform: history_stats
    name: TV_playing_Last_4H
    entity_id: media_player.xiaomi_mitv5h1_2c03_play_control
    state: "idle"
    type: time
    end: "{{ now() }}"
    duration: "4:00"



隔壁的王叔叔 发表于 2023-8-22 16:44:55

太棒了,顶起来。我拿去改改看看索尼电视是否可行。

lyr071295 发表于 2023-8-22 17:44:07

着东西不错,靠小孩自觉真不可能

relliky 发表于 2023-8-22 19:30:15

大佬牛逼,我还看到国外大神做了个类似的 https://community.home-assistant.io/t/screen-time-for-the-kids/452149?u=relliky

不过他是每周给他孩子玩游戏和看电视的额度。

michaelxkh 发表于 2023-8-22 21:05:51

tv_time_current这个怎么创建的,没找到

fanxiong 发表于 2023-8-22 21:23:47

michaelxkh 发表于 2023-8-22 21:05
tv_time_current这个怎么创建的,没找到

这个是历史记录传感器里的数据,主贴里有说配套的东西

fanxiong 发表于 2023-8-22 22:29:39

michaelxkh 发表于 2023-8-22 21:05
tv_time_current这个怎么创建的,没找到

已经更新主贴了,参看主贴内容和附件

fanxiong 发表于 2023-8-22 22:30:43

relliky 发表于 2023-8-22 19:30
大佬牛逼,我还看到国外大神做了个类似的 https://community.home-assistant.io/t/screen-time-for-the-kid ...

个人感觉每周时间跨度太大了

hunl1986 发表于 2023-8-24 01:10:14

小米电视感觉用这个集成控制会好点
https://github.com/shaonianzhentan/xiaomi_tv

fanxiong 发表于 2023-8-24 08:28:46

hunl1986 发表于 2023-8-24 01:10
小米电视感觉用这个集成控制会好点
https://github.com/shaonianzhentan/xiaomi_tv

这是通过ADB控制的吗?ADB打开后,关机或重启电视ADB就自动关闭了
页: [1] 2
查看完整版本: 控制电视观看时间的流(已更新控制方式)