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

 找回密码
 立即注册
12
返回列表 发新帖
楼主: bizshow

[新奇玩法] 【已解决】请问有没有可以检测小米电视的状态的方法?

[复制链接]

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-7-27 16:52:30 | 显示全部楼层
heculess 发表于 2023-7-27 14:37
media_player的属性里面我记得是有当前信道的。可以直接获取啊

我试了下,貌似通过hass切换的hdmi信号源,可以获取和触发,通过遥控器直接切换的信号源不能反向同步到hass中,即便是开关机状态,也是通过ping电视的IP来判断的,所以会有延迟
回复

使用道具 举报

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-7-28 11:16:21 | 显示全部楼层
本帖最后由 bizshow 于 2023-7-28 11:20 编辑

找到解决办法了!!!
其实在miot-spec中有对应的属性来指示、控制输入源,但是在Xiaomi Miot Auto并没有把这个选项暴露出来。
自己改了一下 device_customizes.py 文件,把 xiaomi.tv.* 的设备增加一个 select_properties = television.input_control 即可。
现在电视开机、关机、切换HDMI,或者打开指定app(包括回到桌面),都能触发自动化了。
由于是基于miot-spec协议,无论是HASS切换、小爱语音切换、还是电视遥控器切换,都能生效。


评分

参与人数 2金钱 +12 收起 理由
cyqian86 + 2 标记一下,新手希望可以得到详解.
dscao + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

7

主题

202

帖子

1007

积分

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
805
HASS币
0
发表于 2023-11-9 12:46:18 | 显示全部楼层
bizshow 发表于 2023-7-28 11:16
找到解决办法了!!!
其实在miot-spec中有对应的属性来指示、控制输入源,但是在Xiaomi Miot Auto并没有把 ...

大佬能不能说具体点,怎么弄,真的很需要,我想也有很多人需要
回复

使用道具 举报

0

主题

80

帖子

288

积分

中级会员

Rank: 3Rank: 3

积分
288
金钱
208
HASS币
0
发表于 2023-11-19 12:19:09 | 显示全部楼层
Mark一下
回复

使用道具 举报

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-11-28 17:57:05 | 显示全部楼层
图片1是xiaomi_miot集成的改动
图片2是设置的自动化
下面的代码是其中一个自动化和相关脚本的代码,可以参考自行设置

自动化:
alias: 客厅电视-打开-HDMI2
description: ""
trigger:
  - platform: device
    device_id: 119f2d460e048922250f1887d5afc1f0
    domain: media_player
    entity_id: media_player.xiaomi_rmaxv1_3406_play_control
    type: turned_on
  - platform: device
    device_id: b867dbc8ac5466bb66b44f0aa5ccbf16
    domain: media_player
    entity_id: media_player.ke_ting_de_dian_shi
    type: playing
  - platform: device
    device_id: 119f2d460e048922250f1887d5afc1f0
    domain: media_player
    entity_id: media_player.xiaomi_rmaxv1_3406_play_control
    type: idle
condition:
  - condition: device
    device_id: 119f2d460e048922250f1887d5afc1f0
    domain: select
    entity_id: select.xiaomi_rmaxv1_3406_tv_input_control
    type: selected_option
    option: HDMI 2
action:
  - service: script.1691593676406
    data: {}
mode: single


脚本
alias: 桥接客厅电视HDMI2
sequence:
  - service: xiaomi_miot.intelligent_speaker
    data:
      execute: true
      silent: true
      throw: true
      entity_id: media_player.xiaomi_l05c_899a_play_control
      text: 桥接客厅电视信号源二
  - if:
      - condition: state
        entity_id: automation.zhuang_tai_hdmiqie_huan_yin_xiao
        state: "on"
      - condition: and
        conditions:
          - condition: device
            device_id: be6d7ca794f535b83be658aab631268f
            domain: alarm_control_panel
            entity_id: alarm_control_panel.lumi_mgl03_1d28_arming
            type: is_armed_home
    then:
      - service: automation.turn_off
        data:
          stop_actions: true
        target:
          entity_id: automation.zhuang_tai_hdmiqie_huan_yin_xiao
      - service: script.1691593380724
        data: {}
      - delay:
          hours: 0
          minutes: 1
          seconds: 0
          milliseconds: 0
      - service: automation.turn_on
        data: {}
        target:
          entity_id: automation.zhuang_tai_hdmiqie_huan_yin_xiao
mode: single
icon: mdi:hdmi-port


图片3是桥接到米家APP,然后再让中枢执行切换信号的操作

图4是中枢的设置


最简单的就是,识别到信号源切换,执行氛围灯切换(或者执行关闭房间灯之类的),可以不用搞我这么长的链路。

因为我的设备比较多,而且要实现切换信号后,播放提示音,而且还要避免睡觉、或者不在家时,由于hass重启之类的重设信号源等误触发切换信号等,所以我的链路比较长,大家可以根据自己的需要自行精简就行了。

注:由于 xiaomi_miot 是轮询的方式来检测属性变化的,所以可能最长要一分钟之内才能触发自动化,不过问题不大。

现在我实现的场景如下,供大家参考:

HDMI1:看电视直播,氛围灯切换到电视联动,如果是夜间,打开房间灯
HDMI2:看AppleTV,氛围灯切换到电影模式(常驻白光),关闭房间灯
HDMI3:玩PS5游戏,氛围灯切换到游戏模式(常驻更暗的白光),如果是夜间,打开房间较暗的灯
显示电视桌面(一般是在使用电视自带的APP):氛围灯切换到电视联动,如果是夜间,打开房间灯
关闭电视:氛围灯切换到渐变颜色并显示跑马灯动画,如果是夜间、非睡觉、非离家,打开房间灯
1.png
2.png
3.jpg

4.jpg.zip

774.4 KB, 下载次数: 1

评分

参与人数 1金钱 +10 收起 理由
隔壁的王叔叔 + 10 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-11-28 17:58:12 | 显示全部楼层
PerryLayne 发表于 2023-11-9 12:46
大佬能不能说具体点,怎么弄,真的很需要,我想也有很多人需要

看下我最新的回复
回复

使用道具 举报

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-11-28 18:02:03 | 显示全部楼层
对了,按照上面图1修改了代码以后,小米电视的设备会增加这个数据,就是靠这个属性来触发自动化的
啊.png
回复

使用道具 举报

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-11-28 18:03:44 | 显示全部楼层
另外,还单独添加了一个xiaomi电视的集成,这个集成可以识别电视的开启和关闭状态
集成.png
集成2.png

评分

参与人数 1金钱 +8 收起 理由
PerryLayne + 8 大佬这个怎么添加的?

查看全部评分

回复

使用道具 举报

7

主题

202

帖子

1007

积分

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
805
HASS币
0
发表于 2023-11-30 16:42:54 | 显示全部楼层
bizshow 发表于 2023-11-28 18:03
另外,还单独添加了一个xiaomi电视的集成,这个集成可以识别电视的开启和关闭状态
...

大佬这个怎么添加的呢?
我没有找到这个集成啊,只有一个官方的,添加完是一个媒体播放器,可以关闭电视,并不能识别状态。

我拿NR做了一个反应很慢,求分享这个试试,这个开关才是最有用的
回复

使用道具 举报

1

主题

14

帖子

143

积分

注册会员

Rank: 2

积分
143
金钱
129
HASS币
0
 楼主| 发表于 2023-12-1 09:56:22 | 显示全部楼层
PerryLayne 发表于 2023-11-30 16:42
大佬这个怎么添加的呢?
我没有找到这个集成啊,只有一个官方的,添加完是一个媒体播放器,可以关闭电视, ...

这个集成叫做 xiaomi_tv 我已经忘记是在hacs还是哪里安装的了,不过我通过集成的文档链接找到了他的git地址

https://github.com/shaonianzhentan/xiaomi_tv

你可以试试
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-8 01:37 , Processed in 0.096766 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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