Home Assistant智能家居+react-native设置安卓手机自动充电和断电

NO.1
使用场景

手上有旧手机或者备用机

使用了呼叫转移,消息转发,自动化任务或者闲置在家

此图片的alt属性为空;文件名为image-403-1024x658.png

NO.2
注意事项

长期不使用时,尽量把手机电池电量保持在65%左右,日常使用尽量保持在45%-75%左右

现在的手机一般电量到了20%会提示低电量,一个是提示可能关机带来的影响,一个是避免手机低电量时充电和从低电量一次性充到100%,容易缩短电池容量,降低使用寿命

适当的充电方式是

电量到100%时,不建议一直保持满电状态

不要使用山寨充电器和充电线,容易有安全隐患

长时间旧手机低电量关机待机,或者突然从关机充电一直100%,一直充电待机

都容易造成电池鼓包,电池发热,容易产生爆炸

此图片的alt属性为空;文件名为image-404.png

NO.3
优化方法

目前有两种方式

一种是智能插座设置定时开关,每天定时开启几个小时,保持手机有电就行,这样不会造成备用机关机,也不会过度充电,缺点是不能准确判断电池电量

一种是根据手机电池电量设置阈值,如低于30%时插座充电,高于95%时插座断电,这样,只要手机电池在合适范围,就不会每天充放电,保证正常使用即可

这里要细说的是第二种方式

此图片的alt属性为空;文件名为image-405-1024x683.png

NO.4
电量阈值自动充电

网上目前有几种方案

  1.  Magisk 模块控制电池电量,需要root,可以让手机不适用电池,而是直接使用电源(需要手机支持,兼容性待定)

  2. 使用Termux设置手机终端系统,使用shell定时获取电量并发送指令,本身可以作为服务器,也可以作为客户端,无需root,但是releses上次发布停留在2022年1月

  3. app获取电池电量,常驻手机系统保活,并联动Home Assistant充电和断电,重点是如何让app在保持在后台运行任务的同时不被杀掉进程

  4. iphone设置快捷指令,联动Home Assistant充电断电(快捷指令可设置电量阈值触发条件,无需第三方支持)

本文主要讨论安卓,通过app保活+Home Assistant Mqtt通信方式设置智能插座开关充电放电

此图片的alt属性为空;文件名为image-406.png

NO.5
内容总览

这里简单描述下各个模块

一.使用React Native开发App

  1. 使用react-native-background-timer设置后台任务(定时任务)

  2. 使用react-native-device-info获取当前手机电量

  3. 使用@openrc/react-native-mqtt进行手机MQTT通信

二.创建MQTT服务器

使用docker-compose方式创建MQTT服务器

使用的开源服务emqx

https://github.com/emqx/emqx

三.Home Assistant通信

  1. 在设置-集成中添加MQTT集成(需要输入ip/域名,账户,密码绑定)

  2. 在插座集成中添加自动化,设置接收MQTT后进行开关联通

四.设置手机APP保活

本文使用小米手机

  1. 设置省点策略-无限制

  2. 设置开启自启动

  3. 手机管家-锁定任务(不会被手动删除进程)

  4. 权限设置-允许锁屏显示,允许后台弹出界面,显示悬浮窗,常驻通知,桌面快捷方式(总而言之,因为是自己开发的应用,所有的权限能给就给)

此图片的alt属性为空;文件名为image-407-1024x500.png

NO.6
Tips

手上有一个旧手机鼓包了

同时有几个闲置手机,需要进行智能充放电处理,避免鼓包发热

目前APP+Home Assistant已经设置成功

END.