本帖最后由 hunl1986 于 2024-9-3 18:40 编辑
最近放假,小的在家天天对着电视,关了后又偷偷打开,就想对电视进行限制时间,看了论坛各大神的方法,和我的要求有点不同,就自己写了个流程,发上来给大家参考,有什么更好的方案大家一起讨论。
备注:好多兄弟发私信给我问怎么控制关电视的方法,这不是这贴的讨论主题,但最通用方便的方法应该是买个博联或小米的红外控制器(例如博联的黑豆,某鱼才20多块一个,便宜的很),学习遥控的红外码,我的NODE-red就是用红外来关电视。
功能说明:
- 电视模式可以控制电视是否可以打开,当电视模式为关闭状态时,打开电视会30秒内关闭。
- 儿童模式可以控制小孩观看电视时间,当儿童模式为打开状态时,打开电视会计算观看时间,当设定的时间到达时,电视自动关闭。当家长观看电视时,可以关闭儿童模式。
- 重置时间可以重置当天观看时间,当天时间用完后,家长还想给小孩观看,可以点击重置时间。
- 关闭电视为直接关闭电视模式和电视,如需再次打开电视需要手动打开电视模式,否则电视自动关闭
1、node-red安装节点(菜单-节点管理-安装)
node-red-contrib-stoptimer
2、在node-red导入下面的流,HACS安装Node-RED Companion,实体会自动生成。
注:
(1)、更改Ping 192.168.10.220(根据电视IP进行更改)
(2)、更改关闭电视(请根据电视关闭方法设置)
(3)、电视时间控制-重置里{"time": "01:00"}设置每天可观看时间,默认1小时/每天
3、在你的UI里添加内容
(1)、你的模式可以添加实体:电视模式(switch.dian_shi_kong_zhi)
(2)、添加电视控制界面
- 安装卡面:
- vertical-stack-in-card
- mushroom
- card-mod
type: custom:vertical-stack-in-card
cards:
- type: custom:mushroom-template-card
primary: 电视控制
secondary: 儿童模式剩余观看时间:{{ states('time.dian_shi_kong_zhi_shi_jian') }}
icon: ''
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
picture: /local/icons/tv.svg
fill_container: true
- type: custom:mushroom-chips-card
chips:
- type: template
entity: switch.er_tong_mo_shi
tap_action:
action: call-service
service: switch.toggle
target:
entity_id:
- switch.er_tong_mo_shi
icon: |
{% if is_state(entity, 'on') %}
mdi:teddy-bear
{% else %}
mdi:teddy-bear
{% endif %}
icon_color: |
{% if is_state(entity, 'on') %}
orange
{% else %}
grey
{% endif %}
content: 儿童模式
- type: template
entity: button.zhong_zhi_dian_shi_shi_jian
tap_action:
action: call-service
service: button.press
target:
entity_id: button.zhong_zhi_dian_shi_shi_jian
data: {}
icon: |
{% if is_state(entity, 'on') %}
mdi:lock-reset
{% else %}
mdi:lock-reset
{% endif %}
icon_color: green
content: 重置时间
- type: template
entity: switch.dian_shi_kong_zhi
tap_action:
action: call-service
service: switch.toggle
target:
entity_id: switch.dian_shi_kong_zhi
data: {}
icon: |
{% if is_state(entity, 'on') %}
mdi:television-speaker-off
{% else %}
mdi:television-speaker
{% endif %}
icon_color: |
{% if is_state(entity, 'on') %}
red
{% else %}
grey
{% endif %}
content: |-
{% if is_state(entity, 'on') %}
关闭电视
{% else %}
打开电视
{% endif %}
alignment: justify
card_mod:
style: |
ha-card {
margin: 5px 15px 5px;
--chip-background: rgba(var(--rgb-disabled), 0.15);
--chip-box-shadow: none;
--chip-border-radius: 10px;
--chip-height: 42px;
--chip-padding:10px;
}
(3)、添加图标。在/www(即Home Asssistant设置文件config里的www文件夹)新建icons文件夹上传tv.svg图标文件
tv.svg
(5.27 KB, 下载次数: 25)
|