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

 找回密码
 立即注册
查看: 12182|回复: 22

[已解决] 用什么触发不占用usb开关来一键开启浙江卫视

[复制链接]

18

主题

183

帖子

782

积分

高级会员

Rank: 4

积分
782
金钱
599
HASS币
0
发表于 2018-3-23 09:06:45 | 显示全部楼层 |阅读模式
本帖最后由 rexandlanny 于 2018-3-26 11:55 编辑

- alias: 打开浙江卫视
  initial_state: true
  trigger:
    - platform: state
      entity_id: switch.rice_usb  这是我的小米插座带usb的
      from: 'off'
      to: 'on'               
  action:
    - service: switch.turn_on  
      data_template:
        entity_id: switch.tvonoff  电视开机
    - service: switch.turn_on
      data_template:
        entity_id: switch.jidingheonoff  机顶盒开机
    - delay:
        seconds: 30   开机有广告大概25秒左右     
    - service: switch.turn_on
      data_template:
        entity_id: switch.tvleft  这里就是一条一条执行红外
    - service: switch.turn_on
      data_template:
        entity_id: switch.tvdown   


    - service: switch.turn_on
      data_template:
        entity_id: switch.tvok


    - service: switch.turn_on
      data_template:
        entity_id: switch.tvok


    - service: switch.turn_on
      data_template:
        entity_id: switch.jidinghezhibo  直接进入直播界面
    - delay:
        seconds: 1  由于机顶盒比较老了  反应慢  就延迟一秒
    - service: switch.turn_on
      data_template:
        entity_id: switch.jidingheright
    - delay:
        seconds: 1
    - service: switch.turn_on
      data_template:
        entity_id: switch.jidingheright


    - service: switch.turn_on
      data_template:
        entity_id: switch.jidinghedown
    - delay:
        seconds: 0.5
    - service: switch.turn_on
      data_template:
        entity_id: switch.jidinghedown
    - delay:
        seconds: 0.5


    - service: switch.turn_on
      data_template:
        entity_id: switch.jidinghedown
    - delay:
        seconds: 0.5
    - service: switch.turn_on
      data_template:
        entity_id: switch.jidingheok
    - service: switch.turn_off
      data_template:
        entity_id: switch.rice_usb  最后把usb关了  下一次好启动
问题是   如何用虚拟开关代替那个usb开关     如果要换下一个频道  我怎么知道现在在
哪个频道  如果我想看湖南卫视   我必须再写一个自动化  从头开始吗?请指教 谢谢 我是在siri中语音执行的  完全靠语音  或者有其他的方法实现  谢谢了

2018.3.26
感谢各位的指导   写脚本  加入自动化  已经可以  经过测试  一直有个问题无法解决 如果
脚本里面有两个 一样的红外代码  一直只执行一个   不知道是太快电视无法接受到  还是
什么  不知道  所以还是调回原来的开关  然后调用开关来执行   再次谢谢大家



回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2018-3-23 09:36:27 | 显示全部楼层
写个脚本,用博联不就完了吗???
回复

使用道具 举报

18

主题

183

帖子

782

积分

高级会员

Rank: 4

积分
782
金钱
599
HASS币
0
 楼主| 发表于 2018-3-23 10:30:19 | 显示全部楼层
jyz_0501 发表于 2018-3-23 09:36
写个脚本,用博联不就完了吗???

我就是用的博联   至于脚本  还没有接触过  怎么弄啊  小白一个   请教了
回复

使用道具 举报

2

主题

711

帖子

5045

积分

论坛元老

Rank: 8Rank: 8

积分
5045
金钱
4334
HASS币
85
发表于 2018-3-23 14:44:37 | 显示全部楼层
用脚本script就好,有带开关~写的原理与目前的差不多
回复

使用道具 举报

2

主题

711

帖子

5045

积分

论坛元老

Rank: 8Rank: 8

积分
5045
金钱
4334
HASS币
85
发表于 2018-3-23 14:49:45 | 显示全部楼层
script:      
  tv1:
    sequence:
      - service: switch.broadlink_send_packet_192_168_1_100
        data:
          packet:
            - 'JgBQAAABJpISExITEhMSEhMSEjcSNxMSEjcTNxI2EzYTOBISEhMSNhMTEhMSNhMTEhMSEhITEhMSNhM2ExMSNhM3EzYTNhM2EwAFFgABJUkTAA0FAAAAAAAAAAA='         
回复

使用道具 举报

18

主题

183

帖子

782

积分

高级会员

Rank: 4

积分
782
金钱
599
HASS币
0
 楼主| 发表于 2018-3-23 15:50:09 | 显示全部楼层
nice2943 发表于 2018-3-23 14:49
script:      
  tv1:
    sequence:

非常感谢  试着去尝试一下  谢谢
回复

使用道具 举报

2

主题

711

帖子

5045

积分

论坛元老

Rank: 8Rank: 8

积分
5045
金钱
4334
HASS币
85
发表于 2018-3-23 16:20:48 | 显示全部楼层
免客气,你自动化都写的顺,脚本铁定没问题
回复

使用道具 举报

4

主题

531

帖子

4001

积分

论坛元老

Rank: 8Rank: 8

积分
4001
金钱
3460
HASS币
120
发表于 2018-3-23 20:21:38 | 显示全部楼层
本帖最后由 killadm 于 2018-3-23 20:27 编辑

我来提供个切换频道的思路
主要来源于这个帖子
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=1868&highlight=%E7%94%B5%E8%A7%86

我修改了一个只需要用下拉菜单选择频道的版本
555.jpg

packages/channel.yaml

#频道列表下拉菜单,格式:频道号 频道名称,自动化只会取前三位数字
input_select:
  mod_channel_select:
    icon: mdi:television-classic
    options:
     - 301 CCTV-1
     - 302 CCTV-2
     - 303 CCTV-3
     - 304 CCTV-4
     - 305 CCTV-5
     - 319 CCTV-5+
     - 306 CCTV-6
     - 307 CCTV-7
     - 308 CCTV-8
     - 309 CCTV-9
     - 310 CCTV-10
     - 312 CCTV-12
     - 33 CCTV-13
     - 314 CCTV-14
     - 320 河北卫视
     - 321 北京卫视
     - 322 东方卫视
     - 323 湖南卫视
     - 324 广东卫视
     - 325 江苏卫视
     - 326 浙江卫视
     - 327 深圳卫视
     - 328 天津卫视
     - 329 山东卫视
     - 330 湖北卫视
     - 331 黑龙江卫视
     - 332 安徽卫视
     - 333 纪实高清
     - 334 辽宁卫视
     - 335 重庆卫视
     - 336 四川卫视


#定义遥控器0-9按键脚本
script:
  mod_remote_0:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUUEhMTExMRORIUFBETExITFRESOBU2ExMUEhI3FTYUNhU2ExMUNhQ2EhQTExI4ExIVEhM2FRISExM3FTYUEhE5EwAFjwABLUoUAA0FAAAAAAAAAAA='

  mod_remote_1:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUSFBIUEhMSOBIUEhQTExEUEhQRORI4ExMSFBE5EjgTNxIUEjgSFBIUExMRFBI4EhQSOBIUEjgSOBU2EjgTExI4EwAFjQABLUsUAA0FAAAAAAAAAAA='

  mod_remote_2:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUVERMSEhQTNxURExMRFREUEhQTNxI4ExMSExQ3FDYSOBQ3FBEUExEUEhMSFRE4EhUSExM3EjgSORI4EjgSFBI4EgAFjwABLUoRAA0FAAAAAAAAAAA='

  mod_remote_3:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLJYSFBITEhQSOBIUEhQSFBEUEhQSOBI4EhQSFBI4EjgVNhITEhQSFBITEhQSFBI4EhQSOBI4EjkSOBI4EjgUExE5EQAFkAABLEsUAA0FAAAAAAAAAAA='

  mod_remote_4:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLJYVERQRFBIUNhQSFBIUERQSFBIUNhQ2FREUEhQ2FTUVNRURFTUVNhUQFREUEhU1FRETNxQSFBEVNRU2FDYUEhU1FAAFjQABKk0TAA0FAAAAAAAAAAA='

  mod_remote_5:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUSFBITExMSOBIUFRESFBQSERQSOBI4FRESFBI4EzcTOBQ2EhQTNxIUExITExI4ExMTExI4EhQSOBI4EzgTEhU2EgAFjgABLUsTAA0FAAAAAAAAAAA='

  mod_remote_6:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUVERQSExMRORQSExIUEhQSFBEUNhU2ExITExM3EzgUNhURExMSNxUSExITExQ2FBITNxQ2FBIUNhM3FDYVEhI3FQAFjAABLUoUAA0FAAAAAAAAAAA='

  mod_remote_7:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUUEhQSEhMUNhMTFBIUEhQRFBIUNhQ2ExMUEhQ2FDYTNxUSFDUVEhE4FRITEhM3ExMUNhMTFDYVERQ2EzcTExM3FAAFjQABLEsUAA0FAAAAAAAAAAA='

  mod_remote_8:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABK5cSFBIUEhQRORQSExMRFBIUEhQRORI4EhQSFBE5EjgSOBI5ERQSFBI4ExMSFBI4EhQSFBE4EzgSFBI4EjgSFBI4EgAFjwABK00RAA0FAAAAAAAAAAA='

  mod_remote_9:
    sequence:
      - service: switch.broadlink_send_packet_192_168_123_217
        data:
          packet:
            - 'JgBQAAABLZUVERMSEhQSOBQSExMSFBEUExMTNxI4FBIUEhI4FDYVNRURFBIUEhM3FBIRFRQ1FRETNxU2FDYUEhQ2FDYUEhI4FQAFjAABLUoVAA0FAAAAAAAAAAA='

#拆分频道列表前三位数字,调用相关频道脚本,通过博联发送频道号
#{{"123ABC" | list}} = ['1', '2', '3', 'A', 'B', 'C']
#{{("123ABC"| list)[0] }} = '1'

automation:
  - alias: "change channel"
    hide_entity: True
    trigger:
      platform: state
      entity_id: input_select.mod_channel_select
    action:
      - service: script.turn_on
        data_template:
          entity_id:
            - script.mod_remote_{{ (states('input_select.mod_channel_select') | list)[0] }}
      - service: script.turn_on
        data_template:
          entity_id:
            - script.mod_remote_{{ (states('input_select.mod_channel_select') | list)[1] }}
      - service: script.turn_on
        data_template:
          entity_id:
            - script.mod_remote_{{ (states('input_select.mod_channel_select') | list)[2] }}

  #如果当前输入源不是有线电视,自动切换到HDMI2
  - alias: "switch input source"
    hide_entity: True
    trigger:
      platform: state
      entity_id: input_select.mod_channel_select
    condition:
      condition: and
      conditions:
      - condition: state
        entity_id: media_player.mybraviatv
        state: 'on'
      - condition: template
        value_template: "{{ not is_state_attr('media_player.mybraviatv', 'media_content_id', 'HDMI2') }}"
    action:
      - service: media_player.select_source
        data:
          entity_id: media_player.mybraviatv
          source: HDMI2

homeassistant:
  customize:
    input_select.mod_channel_select:
      friendly_name: 选择频道


只需要加个自动化判断是否开机就可以满足你的需求

切换频道的部分可以通过调用input_select.select_option服务选择频道
  action:
    service:  input_select.select_option
      data:
        entity_id: input_select.mod_channel_select
        option: '326' #浙江卫视台号

目前有个bug就是如果有频道号含重复数字,博联会只发送一次(比如322,电视只收到32),原因未知。
还有就是按键偶尔会有延迟,发送的频道号会从中间断掉(比如301,发送完30卡了一次,电视会切换到30再切换到1)。



回复

使用道具 举报

18

主题

183

帖子

782

积分

高级会员

Rank: 4

积分
782
金钱
599
HASS币
0
 楼主| 发表于 2018-3-23 20:37:05 | 显示全部楼层
killadm 发表于 2018-3-23 20:21
我来提供个切换频道的思路
主要来源于这个帖子
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=18 ...

谢谢  谢谢   好好研究一下  再次感谢
回复

使用道具 举报

75

主题

1976

帖子

8179

积分

元老级技术达人

积分
8179
金钱
6153
HASS币
430

活跃会员教程狂人

发表于 2018-3-23 20:38:04 | 显示全部楼层
红外这个就是比较繁琐,我到现在也没把这些码编完,就是用5楼和8楼的思路,我也是这么干的,红外脚本+自动化。


TIM截图20180323203446.jpg

1.jpg

2.jpg
所有过往,皆为序章。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 15:51 , Processed in 0.138657 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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