找回密码
 立即注册
查看: 15117|回复: 17

解决万能遥控器只有一个码开关电视方法

[复制链接]

5

主题

88

回帖

535

积分

高级会员

积分
535
金钱
442
HASS币
0
发表于 2019-4-30 22:17:29 | 显示全部楼层 |阅读模式
不知你们又没遇到这个问题,红外遥控器无法判断电视是否开着。如果电视关了,我叫天猫精灵关电视,那么电视就会打开。如果运用的实际场景就是跟天猫精灵说晚安,然后天猫精灵会依次关闭你的电器,但是如果刚好电视已经关闭,那么又只能变成打开了。这问题缠腰了自己好久,今天终于找到解决方法了。以下是代码:
ps 我用的是小米万能遥控器,其他平台的可参考代码。
binary_sensor:
    - platform: ping
      name: TV
      host: 192.168.31.231
      scan_interval: 3
      count: 3
switch:
- platform: template
  switches:
      tv_power:
        friendly_name: "电视"
        value_template: "{{ as_timestamp(states.script.tv_power.attributes.last_triggered)  | int  < as_timestamp(states.script.tv_power.attributes.last_triggered)  | int }} "
        turn_on:##如果电视打开则做无效操作
          service_template: "script.tv_{{ 'none' if states.binary_sensor.TV.state == 'on' else 'power' }}"
        turn_off:
          service_template: "script.tv_{{ 'none' if states.binary_sensor.TV.state == 'off' else 'power' }}"
script:
tv_power:
 sequence:
  - service: remote.send_command
    entity_id: 'remote.xiaomi_miio_192_168_31_172'
    data:
      command:
        - 'tv'
tv_none:#无用操作
 sequence:
  - service: remote.send_command
    entity_id: 'remote.xiaomi_miio_192_168_31_172'
    data:
      command:
        - 'cf_light_off'

tv_none是一个无效操作,可以定义为任何事情,但是必须存在,可能我比较菜吧!找不到别的方法,如果有更好的方法的小伙伴麻烦补充。

评分

参与人数 1金钱 +10 收起 理由
jyz_0501 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

23

主题

1315

回帖

6791

积分

超级版主

积分
6791
金钱
5428
HASS币
100

教程狂人

发表于 2019-4-30 22:25:37 | 显示全部楼层
红外最头痛的就是没有反馈,我目前是自己写插件存状态
回复

使用道具 举报

5

主题

88

回帖

535

积分

高级会员

积分
535
金钱
442
HASS币
0
 楼主| 发表于 2019-4-30 22:31:29 | 显示全部楼层
natic 发表于 2019-4-30 22:25
红外最头痛的就是没有反馈,我目前是自己写插件存状态

是啊!但是红外的优点又是wifi开关比不上的,就是简易和方便。
回复

使用道具 举报

2

主题

228

回帖

1917

积分

金牌会员

积分
1917
金钱
1687
HASS币
0
发表于 2019-4-30 22:48:07 | 显示全部楼层
我用小米智能插線板的功率數值判斷電視狀態。
回复

使用道具 举报

30

主题

463

回帖

4795

积分

论坛元老

佑桑

积分
4795
金钱
4287
HASS币
156

教程狂人

发表于 2019-4-30 23:06:40 | 显示全部楼层
若電視機有支援 Wake On Lan 也可以用以下的代碼
叫醒電視時用 WOL, 並且這個元件會使用 PING 確認開關狀態
而在關閉電視時直接使用電視的狀態來判斷要不要送出紅外碼
- platform: wake_on_lan
  name: BenQ_55SW700
  mac_address: "a8:82:00:36:1c:a0"
  host: "10.59.1.249"
  turn_off:
    service: script.tv_remote_power_off
tv_remote_power_off:
  sequence:
    - condition: state
      entity_id: switch.benq_55sw700
      state: 'on'
    - service: broadlink.send
      data_template:
        host: '{{states("input_text.broadlink_livingroom")}}'
        packet: 'JgBYAAABxxxxx'
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

5

主题

88

回帖

535

积分

高级会员

积分
535
金钱
442
HASS币
0
 楼主| 发表于 2019-4-30 23:20:57 | 显示全部楼层
chinyaolin 发表于 2019-4-30 23:06
若電視機有支援 Wake On Lan 也可以用以下的代碼
叫醒電視時用 WOL, 並且這個元件會使用 PING 確認開關狀態 ...

不知道我的电视支不支持网络唤醒,有没什么快捷的方法测试下?
回复

使用道具 举报

6

主题

380

回帖

2045

积分

金牌会员

积分
2045
金钱
1657
HASS币
0
发表于 2019-4-30 23:55:48 | 显示全部楼层
chinyaolin 发表于 2019-4-30 23:06
若電視機有支援 Wake On Lan 也可以用以下的代碼
叫醒電視時用 WOL, 並且這個元件會使用 PING 確認開關狀態 ...

神一般的mtk芯片的电视。每次重启mac地址都会变。
回复

使用道具 举报

30

主题

463

回帖

4795

积分

论坛元老

佑桑

积分
4795
金钱
4287
HASS币
156

教程狂人

发表于 2019-4-30 23:55:59 | 显示全部楼层
llmmkc123 发表于 2019-4-30 23:20
不知道我的电视支不支持网络唤醒,有没什么快捷的方法测试下?

直接用我的代碼試試就行了 修改一下 IP & MAC Address
ASRock H370 PRO4, 48GB, 8TBx3 + 2TBx3
ESXi 6.7 + Ununtu + Docker + HASS.IO -> Homeassistant OS
(Home Assistant Supervised 官方文件)
回复

使用道具 举报

3

主题

186

回帖

1049

积分

金牌会员

积分
1049
金钱
860
HASS币
0
发表于 2019-5-1 07:30:52 | 显示全部楼层
索尼大法还是比较好的,直接用网络控制,还可以选信号源。
没反馈的情况下,用红外遥控选信号源很难吧
回复

使用道具 举报

21

主题

443

回帖

2904

积分

金牌会员

积分
2904
金钱
2440
HASS币
0
发表于 2019-5-2 12:44:41 | 显示全部楼层
树莓派一直ping不通电视盒,不知道什么鬼,用电脑ping一切正常
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 15:05 , Processed in 0.264525 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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