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

 找回密码
 立即注册
查看: 134456|回复: 533

[插件集成] 小米电视机官方组件修复版

  [复制链接]

19

主题

457

帖子

8114

积分

元老级技术达人

云淡风轻近午天

积分
8114
金钱
7657
HASS币
0

教程狂人

发表于 2018-4-17 10:44:26 | 显示全部楼层 |阅读模式
本帖最后由 luzai 于 2018-4-17 11:37 编辑

其实我对这个组件没有任何需求,因为我本身一直用博联和floorplan实现了HA的接入,完全复制了遥控器功能,完美!
看到群友提及这方面的需求,于是简单滴看了一下,发现官方的组件写得比我这种业余爱好者还要业余,于是就完善了一下
先说明官方组件存在的问题:
1、由于小米电视机没有网络待机功能(息屏除外),所以关机状态下无法通过HA打开电视机,只能在开机状态下控制,这个是改变不了的,所以对我来说没有吸引力;
2、受制于官方mediaplayer组件的功能界面限制,无法在界面下映射什么菜单键、返回键、HOME键、上下左右键等等,所以目前只有电源键、音量加减以及静音键,解决方法:可以通过以py或者ha服务的形式接入ha,然后在floorplan或者customui里面调用即可;
3、官方组件居然连update函数也就是状态更新函数都没有,所以就无法及时更新开机或者关机状态,这个功能没有的话组件基本上就是残废;
4、去除官方鸡肋的开机自检电视机状态功能,比如说如果你的HA启动的时候小米电视机没有开机的话,它就不会在HA生产小米电视机的控制播放器,这个太弱智了,已修复;
5、官方discover功能因为设置超时的时间太短,所以有时候网络不佳就会造成无法找到电视机的情况,而实际上你的电视机是开着的,已修复。

我的是小米电视机2,可以正常使用的请回帖把机器型号报上来
正常来说,小米电视机以及电视盒子都通用关于discover.py的替换问题,先要确认是否安装了pymitv库
pip3 freeze | grep pymitv
如果没有的话,可以在配置好以后再替换(HA在配置好播放器的时候会自动安装好这个依赖库的)

QQ截图20180417104540.jpg
使用方法看附件说明(回复可见)

游客,如果您要查看本帖隐藏内容请回复




评分

参与人数 2金钱 +23 收起 理由
summ99111 + 3 感谢楼主分享!
+ 20 膜拜大神!

查看全部评分

回复

使用道具 举报

123

主题

4626

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16013
金钱
11302
HASS币
45
发表于 2018-4-17 10:50:12 | 显示全部楼层
我只想说,楼主你太牛逼了!
回复

使用道具 举报

13

主题

258

帖子

2072

积分

金牌会员

Rank: 6Rank: 6

积分
2072
金钱
1814
HASS币
0
发表于 2018-4-17 10:54:02 | 显示全部楼层
本帖最后由 yoyosuka 于 2018-4-17 11:35 编辑

小米电视4A待测试。
4A50吋报错,
Error executing service <ServiceCall media_player.turn_on: entity_id=['media_player.xiaomi_tv']>Traceback (most recent call last):  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 141, in _new_conn    (self.host, self.port), self.timeout, **extra_kw)  File "/usr/local/lib/python3.6/site-packages/urllib3/util/connection.py", line 83, in create_connection    raise err  File "/usr/local/lib/python3.6/site-packages/urllib3/util/connection.py", line 73, in create_connection    sock.connect(sa)OSError: [Errno 113] No route to hostDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 601, in urlopen    chunked=chunked)  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 357, in _make_request    conn.request(method, url, **httplib_request_kw)  File "/usr/local/lib/python3.6/http/client.py", line 1239, in request    self._send_request(method, url, body, headers, encode_chunked)  File "/usr/local/lib/python3.6/http/client.py", line 1285, in _send_request    self.endheaders(body, encode_chunked=encode_chunked)  File "/usr/local/lib/python3.6/http/client.py", line 1234, in endheaders    self._send_output(message_body, encode_chunked=encode_chunked)  File "/usr/local/lib/python3.6/http/client.py", line 1026, in _send_output    self.send(msg)  File "/usr/local/lib/python3.6/http/client.py", line 964, in send    self.connect()  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 166, in connect    conn = self._new_conn()  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 150, in _new_conn    self, "Failed to establish a new connection: %s" % e)urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fb1b4793b00>: Failed to establish a new connection: [Errno 113] No route to hostDuring handling of the above exception, another exception occurred:Traceback (most recent call last):  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 440, in send    timeout=timeout  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 639, in urlopen    _stacktrace=sys.exc_info()[2])  File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 388, in increment    raise MaxRetryError(_pool, url, error or ResponseError(cause))urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.99.75', port=6095): Max retries exceeded with url: /controller?action=keyevent&keycode=power (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb1b4793b00>: Failed to establish a new connection: [Errno 113] No route to host',))During handling of the above exception, another exception occurred:Traceback (most recent call last):  File "/usr/src/app/homeassistant/core.py", line 1002, in _event_to_service_call    await service_handler.func(service_call)  File "/usr/src/app/homeassistant/components/media_player/__init__.py", line 403, in async_service_handler    yield from getattr(player, method['method'])(**params)  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run    result = self.fn(*self.args, **self.kwargs)  File "/config/custom_components/media_player/xiaomi_tv.py", line 110, in turn_on    self._tv.wake()  File "/usr/local/lib/python3.6/site-packages/pymitv/tv.py", line 35, in wake    return self._sendKeystroke(Control.wake);  File "/usr/local/lib/python3.6/site-packages/pymitv/tv.py", line 23, in _sendKeystroke    return Control().sendKeystrokes(self.ip, keystroke)  File "/usr/local/lib/python3.6/site-packages/pymitv/control.py", line 32, in sendKeystrokes    r = requests.get(tv_url + keystroke)  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 72, in get    return request('get', url, params=params, **kwargs)  File "/usr/local/lib/python3.6/site-packages/requests/api.py", line 58, in request    return session.request(method=method, url=url, **kwargs)  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 508, in request    resp = self.send(prep, **send_kwargs)  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 618, in send    r = adapter.send(request, **kwargs)  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 508, in send    raise ConnectionError(e, request=request)requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.99.75', port=6095): Max retries exceeded with url: /controller?action=keyevent&keycode=power (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb1b4793b00>: Failed to establish a new connection: [Errno 113] No route to host',))
回复

使用道具 举报

24

主题

604

帖子

3400

积分

元老级技术达人

积分
3400
金钱
2791
HASS币
0

卓越贡献

发表于 2018-4-17 11:03:13 | 显示全部楼层
感谢分享,大神能否帮忙修复一下官网三星电视ES8000,存在的跟你一样第一条问题
1、由于小米电视机没有网络待机功能(息屏除外),所以关机状态下无法通过HA打开电视机,只能在开机状态下控制,这个是改变不了的,所以对我来说没有吸引力;
回复

使用道具 举报

0

主题

61

帖子

486

积分

论坛积极会员

积分
486
金钱
425
HASS币
0
发表于 2018-4-17 11:07:28 | 显示全部楼层
支持大神...
回复

使用道具 举报

19

主题

457

帖子

8114

积分

元老级技术达人

云淡风轻近午天

积分
8114
金钱
7657
HASS币
0

教程狂人

 楼主| 发表于 2018-4-17 11:32:02 | 显示全部楼层
eric 发表于 2018-4-17 11:03
感谢分享,大神能否帮忙修复一下官网三星电视ES8000,存在的跟你一样第一条问题
1、由于小米电视机没有网络 ...

这个就相当于如果你的电脑不支持网络唤醒的话,就没法实现的功能
回复

使用道具 举报

1

主题

32

帖子

189

积分

论坛积极会员

积分
189
金钱
157
HASS币
0
发表于 2018-4-17 11:39:52 来自手机 | 显示全部楼层
学习学习
回复

使用道具 举报

69

主题

692

帖子

4187

积分

论坛元老

Rank: 8Rank: 8

积分
4187
金钱
3490
HASS币
80
发表于 2018-4-17 12:25:45 | 显示全部楼层
什么东西我看看。
回复

使用道具 举报

15

主题

656

帖子

2826

积分

金牌会员

Rank: 6Rank: 6

积分
2826
金钱
2170
HASS币
91

教程狂人

QQ
发表于 2018-4-17 13:02:59 | 显示全部楼层
很牛,很牛,很牛
回复

使用道具 举报

65

主题

853

帖子

3038

积分

论坛元老

Rank: 8Rank: 8

积分
3038
金钱
2180
HASS币
40
发表于 2018-4-17 13:09:44 | 显示全部楼层
强!虽然用的三星电视的官方Components支持库,但还是要顶!!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 04:45 , Processed in 1.418146 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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