|
本帖最后由 manymuch 于 2024-3-27 14:26 编辑
缘由
家里有有个极米投影仪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
(5.28 KB, 下载次数: 290)
, 放入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:
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上按一个星星呀, 支持我开发的动力!
|
评分
-
查看全部评分
|