请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
查看: 12242|回复: 39

如何处理带网络功能,但遥控开关码一致的设备,开关...

  [复制链接]

6

主题

272

帖子

3897

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3897
金钱
3620
HASS币
0
发表于 2017-8-7 15:33:11 | 显示全部楼层 |阅读模式
某些网络设备,比如:智能电视,小米盒子,智能机顶盒等等这些设备,开关机的遥控码都是一个键(一个码),这样呢,当电视是开机状态时,你使用了家庭影院“联动自动化”开机时,也会发出一个开关码,导致,其他的设备都正常开启了,但电视却关机了,怎样解决这个问题呢?下面我们用:ping传感器  +  service_template语法    来解决这个问题!

首先,先建立ping传感器.我们应该获取到受控网络设备的ip地址,并把它的IP地址通过路由器的dhcp手动分配,固定下来,本文中,Sharp TV的ip地址是192.168.1.209

注:本文中没有使用HomeAssitant的官方组件ping和ping binary sensor,是因为“延迟太大”,弃用。小米论坛有人用米家门磁,diy一个USB“开机状态回馈器”,我觉得用于“对付没有网络功能的电视”是个不错的方法,但还是需要花钱和动手,而电视目前大多数都带wifi功能了,楼主这个方法,一分钱也不用花……


第一步:启动putty

第二步:进入HomeAssitant的主目录


cd /home/homeassistant/.homeassistant


第三步:建立一个ping_xxx.sh文件

sudo nano ping_xxx.sh


第四步:将下面的内容,复制粘贴到编辑器里

#! /bin/bash

ping -w 5 192.168.1.xxx > /dev/null 2>&1
if [ $? -eq 0 ]; then
    echo "on"
else
    echo "off"
fi


第五步:将上面xxx改成你想要ping的IP地址的最后三个数字,比如192.168.1.209,那就把xxx改成209

第六步:键盘输入Ctrl+X,然后Y键,保存退出。

第七步:将刚才的ping_xxx.sh文件,改名为ping_209.sh(数字要和第五步保持一致)


sudo mv ping_xxx.sh ping_209.sh


第八步:给ping_209.sh文件,赋予“可执行”权限

sudo chmod 777 ping_209.sh


第九步:执行ping_209.sh文件,看看执行结果是否正确

./ping_209.sh


如果192.168.1.209这台电脑是“开机状态”,putty屏幕上将返回结果“on”;否则,将返回结果“off”。


##################putty上的工作结束,用windows资源管理器打开HA的设置文件configuration.yaml########

添加如下内容:


binary_sensor:
  platform: command_line
  scan_interval: 30
  name: mibox
  command: "/home/homeassistant/.homeassistant/ping_209.sh"
  payload_on: "on"
  payload_off: "off" 


保存并重启HomeAssitant

再来建立这个设备(智能电视)input_boolean虚拟开关



input_boolean:
  TV:
    name: Sharp_TV
    initial: off


下面这一步非常重要!一定要搞清楚逻辑关系!把broadlink对应的Sharp_TV的遥控码中,关机码,改成一个“废码”,也就是不起任何实际作用的发射码


- platform: broadlink
  host: 192.168.1.xxx
  mac: 'b4:43:0d:xx:xx:xx'
  switches:
    reciever:
      command_on: 'JgDQACITFBIULxMvFBIULxQSFC8TExQuFC8UAAFgIhMUEhQvEy8UEhQvFBIULxMTFC4ULxQAAWAiExMTFC4ULxQSFC8TExQuFBMULhQvEwABYSITExMULhQvFBIULxMTFC4UExMvFC8TAAFhIhMTExQuFC8UEhQvExMULhQTFC4ULxMAAWEiExMTFC4ULxQSFC8TExQuFBMULhQvEwABYSITFBIULxMvFBIULxQSFC8TExQuFC8UAAFgIhMUEhQvEy8UEhQvFBIULhQTFC4ULxMADQUAAAAAAAAAAA=='
      ###下面这个码,就是一个没有内容的遥控器“废码”
      command_off: ''
      friendly_name: 'Sharp_TV_On_Off'     


接下来,为这个虚拟开关,使用service_template语法来建立对应的automation



- alias: "Sharp_TV inputboolean turn on"
  trigger:
    platform: state
    entity_id: input_boolean.Sharp_TV
    to: 'on'
  action:
    - service_template: >
           {%- if is_state('binary_sensor.Sharp_TV ', 'off') -%}
             switch.turn_on
           {%- else -%}
             switch.turn_off
           {%- endif %}
      entity_id: switch.Sharp_TV _on_off

- alias: "Sharp_TV inputboolean turn off"
  trigger:
    platform: state
    entity_id: input_boolean.Sharp_TV
    to: 'off'
  action:
    - service_template: >
           {%- if is_state('binary_sensor.Sharp_TV ', 'on') -%}
             switch.turn_on
           {%- else -%}
             switch.turn_off
           {%- endif %}
      entity_id: switch.Sharp_TV_on_off


接下来,你就可以用input_boolean.sharp_tv来做测试,绝对不会出现开关机按键和电视状态“相反”的问题了!

评分

参与人数 2金钱 +11 收起 理由
lidicn + 5 666!
+ 6 666!

查看全部评分

回复

使用道具 举报

27

主题

154

帖子

1399

积分

金牌会员

只发干货

Rank: 6Rank: 6

积分
1399
金钱
1245
HASS币
0

教程狂人论坛风云人物

发表于 2017-8-7 15:54:15 来自手机 | 显示全部楼层
太复杂了,花个几百块钱买个harmony hub专门用来控制影视设备就可以完美解决了
回复

使用道具 举报

123

主题

4620

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
15963
金钱
11258
HASS币
45
发表于 2017-8-7 16:31:14 | 显示全部楼层
高哥出山啦?
回复

使用道具 举报

3

主题

23

帖子

81

积分

注册会员

Rank: 2

积分
81
金钱
58
HASS币
0
发表于 2017-8-7 16:34:23 | 显示全部楼层
搬个小板凳围观
回复

使用道具 举报

17

主题

418

帖子

2816

积分

金牌会员

Rank: 6Rank: 6

积分
2816
金钱
2398
HASS币
0

教程狂人

发表于 2017-8-7 16:34:38 | 显示全部楼层
强顶,强烈支持老高
回复

使用道具 举报

1

主题

33

帖子

162

积分

注册会员

Rank: 2

积分
162
金钱
129
HASS币
0
发表于 2017-8-7 16:34:52 | 显示全部楼层
看不懂
回复

使用道具 举报

30

主题

999

帖子

4117

积分

论坛元老

Rank: 8Rank: 8

积分
4117
金钱
3113
HASS币
0

活跃会员

发表于 2017-8-7 16:35:36 来自手机 | 显示全部楼层
前排支持
回复

使用道具 举报

12

主题

20

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
金钱
221
HASS币
0
发表于 2017-8-7 16:35:40 | 显示全部楼层
高哥出山啦
回复

使用道具 举报

5

主题

223

帖子

2205

积分

金牌会员

Rank: 6Rank: 6

积分
2205
金钱
1982
HASS币
0
发表于 2017-8-7 16:36:08 来自手机 | 显示全部楼层
我只是来围观的!
回复

使用道具 举报

1

主题

66

帖子

366

积分

中级会员

Rank: 3Rank: 3

积分
366
金钱
300
HASS币
0
发表于 2017-8-7 16:36:50 | 显示全部楼层
围观围观
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-3-29 14:52 , Processed in 0.263606 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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