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

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

[基础教程] 解决万能遥控器只有一个码开关电视方法

[复制链接]

5

主题

93

帖子

535

积分

高级会员

Rank: 4

积分
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

主题

1329

帖子

6537

积分

超级版主

Rank: 8Rank: 8

积分
6537
金钱
5183
HASS币
100

教程狂人

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

使用道具 举报

5

主题

93

帖子

535

积分

高级会员

Rank: 4

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

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

使用道具 举报

2

主题

231

帖子

1860

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

30

主题

493

帖子

4767

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4767
金钱
4259
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

主题

93

帖子

535

积分

高级会员

Rank: 4

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

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

使用道具 举报

6

主题

388

帖子

2043

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

30

主题

493

帖子

4767

积分

论坛元老

佑桑

Rank: 8Rank: 8

积分
4767
金钱
4259
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

主题

188

帖子

1019

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

20

主题

459

帖子

2819

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 04:59 , Processed in 0.059461 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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