本帖最后由 735473216 于 2023-3-12 10:55 编辑
更新
2023年3月12日
更新了对延迟的说明,和ipad充电流程
前言
v1.0链接
感谢大家对V1.0的喜爱和支持
v1.0主要是基于ipad越狱、ios快捷指令、苹果自己的tts来实现的。主要问题就是流程卡(基于我的A7设备)并且延时高,锁屏后再唤醒影响体验。
v2.0对整个流程进行换血,主要基于ipad越狱、ios上的dimme插件、edge-tts集成、browser_mod2集成。效率和效果有些相当的提升。
选择dimme插件的理由
在v1.0中,我们的人来亮屏是基于唤醒锁屏来操作的。但是程序在锁屏后会断开ha应用于服务器的连接,在恢复前台的时候重新连接,这对于一些老旧设备是致命的(将消耗大量的时间进行update)。
一开始的解决方向是找到一款锁屏后也能保持真后台的插件。但是结果不尽如人意,不是ios12不支持,就是只能在亮屏时保持真后台。
苦思冥想后突然开窍,我们只要找到一款只黑屏不锁后台的插件既可,dimme是实现我们需求的不二之选。
实测尽管dimme黑屏后,ipad的ha终端仍然在线。
流程
ipad越狱(ipad mini2 iOS12.5.7)
A7设备iOS12.5.7越狱方法,我了解的选择并不多。主要有checkra1n和chimera两种。
checkra1n的越狱需要linux(A7设备不支持)和Mac。我手边没有mac系统,所以此方案pass。
chimera官方只支持到12.5.5,需要搜索一个chimerafix的deb补丁即可,方法可自行搜索。
越狱成功后会添加sileo商店(cydia升级版)
越狱插件准备
sileo添加bigboss源、多米诺骨牌源。
安装插件openssh、dimme(熄屏不锁后台)、simulatetouch(模拟点击)
我的dimme设置如下,2分钟没操作自动黑屏
ha集成准备
nodered、edge-tts、browser_mod2(可以hacs安装)
browser_mod2需要在对应ipad上进行注册才能使用
nodered编写
对于tts的触发
人体传感器触发->编写tts文本->调用tts让browser_mod2生成的media_player播报
对于人来亮屏的触发
我暂时无法抓取到dimme黑屏的状态,但是万幸的是可以曲线救国来保持人来和人在的亮屏状态
人体传感器触发->ssh调用simulatetouch模拟点击屏幕退出黑屏。
1分钟轮询触发->如果人体传感器在触发中->->ssh调用simulatetouch模拟点击屏幕保持亮屏
ipad充电
电量低于20%开始充电,高于80%关闭充电(需要配合一个接入ha的开关控制电通断)
结语
这次的方案我已经非常满意,除去tts的处理时间,本流程已经有了巨幅优化,效果喜人。
美中不足的就是我的绿米人体传感器,通过小米多模和gateway3接到ha里,会有两三秒的延迟。不知道这是我环境的问题还是正常,有空再做深究吧。后来测试应该不是接入的问题,我用米家本地和ha都设置了一个人体传感器出发的自动化,他们触发时间点完全一样,可能是我自己人体传感器摆放的问题。
在查阅资料的时候感慨巨人真的太多了,我能做到只是站在巨人肩膀上东拼西凑,来实现自己小小的需求了。
|