|
本帖最后由 manymuch 于 2023-3-19 16:53 编辑
缘由
家里有有个极米投影仪Z6X, 一直想接入HA, 然而新的极米系统已经关闭了ADB开启的入口(在工程模式里面已经没有ADB了), 所有HA自带的android tv 集成就不能用了.
其他相关工作
感谢论坛里这些朋友提供的极米投影仪各个接入教程
https://bbs.hassbian.com/thread-4998-1-1.html
https://bbs.hassbian.com/thread-7105-1-1.html
https://bbs.hassbian.com/thread-8363-1-1.html
https://bbs.hassbian.com/thread-11830-1-1.html
有的提供了UDP协议接口, 有的基于Node-Red集成, 有的自己写了HA 集成.
虽然基本够用, 但是偶尔还是会有一点小问题, 于是这两天学了一点HA 集成开发的方法, 基于async写了一个 稍微"正规"一点的HA插件.
在此抛砖引玉, 希望能吸引大佬门一起开发这个极米投影仪HA插件.
https://github.com/manymuch/Xgimi-4-Home-Assistant
使用方法
如果想直接使用, 可以下载这个包:
xgimi.zip
(2.9 KB, 下载次数: 134)
, 放入custom_components内, 重启一下HA
然后在configuration.yaml中填入
remote:
- platform: xgimi
name: z6x # 随便起个名字
host: 192.168.0.115 # 极米投影仪IP
token: "12D7C7899B9F80FFFFFF3043524B544D" # BLE manufacture data
再重启一下HA, 就可以看到一个remote.z6x的实体了
可以通过调用remote service来控制
service: remote.send_command
data:
command: volumeup
target:
entity_id: remote.z6x
目前支持的command有
play, pause, power, back, home, menu, right, left
up, down, volumedown, volumeup, poweron, poweroff, volumemute
如果输入的command不在上面的范围内, 就会直接转换成语音控制,
比如
service: remote.send_command
data:
command: 关屏
target:
entity_id: remote.z6x
就会实现 "光关机", 所以只要语音控制能支持的, 都可以通过这个方法间接实现
关于开机
目前开机是基于发送ble advertisement实现的, 这就需要你的HA宿主机有一个可以用的蓝牙模块, 我是在树莓派上测试的, 不需要额外的设置, 如果是其他机器或者自己加装的USB 蓝牙模块, 可能需要一些特殊的设置。
关于蓝牙token的获取, 从目前的观察来看, 似乎每一种型号的投影仪token不同,如果你也是z6x, 可以尝试下我的这个token, 如果是其他型号, 可以先看一下
https://github.com/manymuch/Xgimi-4-Home-Assistant/issues/5
https://stackoverflow.com/questi ... e/75551013#75551013
里面有没有别人已经获得到的token,或者根据上面链接里面的方法来获取token。
我简单翻译一下里面的步骤
1. 你需要一个ios设备, 下载 bluetooth smart scanner app
2. 将你的投影仪主机彻底断开电源
3. 不停的按遥控器上的开机按键,这时在bluetooth smart scanner app上应该可以找到遥控器发射的ble advertisement信号
4. 在上面的信号中, 找到manufactorer data
5. 建议先通过EFR connect. 这个安卓app, 验证下能否使用上面的manufactorer data唤起投影仪
6. 如果成功了, 把这一串填入插件的token那一项, 重启HA
Dashboard使用样例
基于tv-card可以构建一个极米投影仪遥控器界面,
以下ui设置共参考
https://github.com/manymuch/Xgim ... v-card-example.yaml
总结
该插件还在非常初级的阶段, 功能, 稳定性方面都还有很多空间.
本来想做成通过config flow UI集成的插件, 然而学艺不精, 折腾了半天没做出来, 暂时先做成基于yaml的, 希望有大佬能够指点一下.
走过路过麻烦在github上按一个星星呀, 支持我开发的动力!
|
评分
-
查看全部评分
|