Tasker×,Android 自动化实例

person杂谈by立行

引言

前些天,几个月前看到了 从通知实现钱迹 Tasker 自动化记账 – 少数派,想起来了之前购买即遗忘于角落的 Tasker…心有戚戚焉。加之自动化记账这件事确实 get 到我了,于是籍此开始折腾 Tasker 的自动化之路。

经过几周的折腾,混迹于各论坛,参考各种文章后魔改,目前实现的部分功能如下:

  • 通话后自动同步录音到坚果云、fooview 截图后自动同步到电脑桌面
  • 地图应用开启关闭与 GPS 同步
  • 视频应用开启关闭与自动锁定同步
  • 息屏下连接特定耳机自动播放微信通知
  • 除特定应用连接耳机后自动播放听力
  • 钱迹自动化记账(带备注、可选账本、延后记账、免密支付自动记账)
  • 点击手环、摇动手机、Quicker 实现管理智能家居
  • 手机充电至 95% ,手环提醒
  • Keep 开始运动后,小米手环自动开始记录
  • 控制另一部手机实现通知转发、播放控制等功能
  • 利用小爱同学执行 Tasker 任务
  • 扫描特定 NFC 卡片,打开体重秤连接界面

各 Profile 的思路和配置流程如下,除了部分导入意义不大的 Profile (这部分 Profile 要么相对简单,要么根据场景、手机自定义配置),其余 Profile 会提供配置导入,Enjoy 。

一 Tasker + FolderSync

1.1 通话录音自动同步到云盘

功能描述

通话结束后,录音自动同步到坚果云/Google Drive/OneDrive/Dropbox 等主流云盘。

配置思路

在 FolderSync 中配置好某个同步项目后,在 Tasker 中进行以下设置。

if (监测到通话结束): 
    调用 Tasker 中 FolderSync 插件同步特定项目 
Endif

依赖配置

  • 无需 Root、adb
  • 下载 FolderSync 需 kx 网络(Google Play)
  • 若网盘为 Google Drive、Dropbox 等国外产品,则需 kx 网络

1.2 FV 悬浮球截图后自动同步到电脑桌面

FV悬浮球-fooView(com.fooview.android.fooview) – 1.4.4.1 – 应用 – 酷安网

FV悬浮球 – fooView,文件浏览,手势截图 – Google Play 上的应用

功能描述

 

配置思路

if (通过 Logcat Entry 监测到 fooview 保存了截图): 
    调用 Tasker 中 FolerSync 插件同步特定项目 
Endif 
 
# 我的 Logcat Entry 设置-Mi10-MIUI12,仅供参考。此部分配置会因为设备、默认保存文件夹不同而不同 
Component:MiuiGallery2_SaveToCloudUtil 
Filter:[thread-pool-0] insert /storage/emulated/0/Pictures/Screenshots/

依赖配置

  • 无需 Root,但 Logcat Entry 功能需要 adb 授权(当你添加这个功能的时候,Tasker 会告诉你怎么做)
  • 下载 FolderSync 需 kx 网络(Google Play)
  • 网盘推荐使用坚果云,不过 Windows 使用 OneDrive 也能有相同的效果

二 Tasker + Notify&Fitness for Mi Band

2.1 充电至 95% 手环发送电量充满提醒

Notify & Fitness for Mi Band – Google Play 上的应用

功能描述

手机充电至 95%,手环接收通知:“手机电量已充满”。

配置思路

if (电池电量=95) And (在充电): 
    手环发送通知 
Endif

依赖配置

三 Tasker+ 钱迹

功能描述

  • 有通知(有金额)可以从通知捕获金额
  • 支持添加备注
  • 支持选择账户
  • 支持延迟记账(会在通知栏中创建一条不会被误清除的通知)
  • 支付宝免密支付项目可以自动记账

 

美中不足的一点是还没找到怎么用 Tasker 直接唤起输入法的数字输入模式,在输入小数点的时候多一步感觉不太方便。如果有知道的朋友,还望在评论区指出,感谢。

配置思路

# 两个 Profiles、两个 Scenes、16 个 Tasks 
 
#变量说明 
%ACCOUNTNAME #记录存入账户 
%Accountname1 #银行卡账户1 
%Accountname2 #银行卡账户2 
%Accountname_hb    #花呗在钱迹中的名称,默认『花呗』 
%Accountname_wechat #微信余额在钱迹中的名称,默认『微信』 
%Accountname_yeb    #余额宝在钱迹中的名称 
 
%Choice    #记录是支付宝系(余额宝、花呗、银行卡们)还是微信系(微信钱包、银行卡们),1支付宝2微信 
%Evtprm #因为%evtprm()是局部变量,存储通知文本在不同 task 之间传递 
%If_have_unrecord_bills #记录是否有需要延后记录的账单(0无1有) 
%Notification_to_cancel #记录要清除的延后通知文本 
%QJURL     #钱迹记账的 Link 
%Tag    #记录是否选择了账本,未选择账本则取消记账

Tasker+钱迹记账思路

依赖配置

  • 无需 Root、无需 adb
  • 需安装钱迹

参考信息

从通知实现钱迹 Tasker 自动化记账 – 少数派

自动化记账接口 · 钱迹用户指南

导入说明

  1. 长按左下角小房子图标,导入项目
  2. 在『支付记账』项目中切换到『任务』界面,点击进入『初始化命令』
  3. 根据自己钱迹账本中账户的名称修改对应的账户名称
  4. 点击左下角,运行此任务
  5. (可选)到Iconfont-阿里巴巴矢量图标库搜索对应账户的图标,在『场景』中修改对应账户的图标和背景
  6. 支付宝免密支付的通知需要自行修改记账账户、通知文本清理、消费类别等设置

PS:我在华为 Nova2s(4+64, EMUI 8.0.0, Android 8.0.0) 上是无法使用钱迹自动化记账的 Uri-Scheme 机制的,已经反馈给开发者,暂无解决方案。

四 Tasker + HomeAssistant

4.0 安装 HomeAssistant 与接入米家设备

安装 Home Assistant

Home Assistant 是一个免费的开源家庭自动化软件,用 Python 编写,重点关注本地控制和隐私。它有非常广泛的设备支持,截至 2020 年 5 月,它支持超过 1600 个模块化插件或附加组件与不同的物联网技术的系统集成,系统和服务作为「集成组件」可用。通过自动,语音命令,移动应用或 Home Assistant 基于 Web 的前端用户界面上的控件来触发诸如打开/关闭灯之类的操作。

Home Assistant – Wikipedia

Home Assistant 作为智能家居的中控中心需要 24 小时运行,所以通常会被安装在功耗比较小的树莓派

但我手里面并没有树莓派,所以我先后尝试过安装在 Windows 和 Android 手机上,都能使用。如果没有树莓派、Nas 等设施的话,推荐安装在老旧 Android 手机上。

Windows 安装 HA

教程:homeassistant安装与启动 – HAChina 中文网

几个避坑的点如下:

  • 截止至 2020.8.12,HA 需要 Python 版本大于等于 3.7
  • 因为有些pip3工具下载的库是源码形式的,在pip3工具执行安装的过程中会需要调用本机的C++编译器,所以需要安装MicrosoftVisual C++Build Tools
  • 如果遇到了 Stuck at INFO:homeassistant.core:Timer:starting ,可以通过pip install home-assistant-fronted解决
  • 如果想设置 Home Assistant 开机自启动,可以制作 .bat 脚本后添加到自启动,以下代码可供参考(无黑窗口常驻)
@echo off 
if "%1" == "h" goto begin 
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit 
:begin 
REM 
 
hass

Android 安装 HA

先后在 红米 Note 4x (已 Root,MIUI11-9.10.10,Android 7)和华为 Nova 2s(未 Root,EMUI8.0,Android 8) 成功安装了 HA,不过两者安装时遇到的问题并不相同,命令仅供参考。

以下操作需要设备安装 Termux 后完成,Termux 是 Android 上的一个终端模拟器,开源并且无需 Root。关于它的具体教程,可以参考Termux 高级终端安装使用配置教程 | 国光

这里也假定你有一定的命令行基础并且擅于搜索,其实核心思想基本可以总结为四个字:缺啥装啥

Root 的设备可以直接进入文件夹编辑文件;未 Root 的设备则需使用 Vim 这种编辑器来编辑相关配置,此处请自行搜索 Vim 的相关用法。

参考的教程:

在 Andorid 使用 Termux 安装 HomeAssistant 以作为家庭的 HomeKit 中枢

闲置Android手机变身Homeassistant家庭助理 HAChina 中文网

Androidr手机或盒子通过Termux 安装Home assistant+homekit+MQTT+Node-red – 『HomeAssistant』

踩坑信息:

  1. 根据 No more -dev packages – Termux Wiki 所言,Termux 从 2019.7.28 起停止支持 xx-dev 的包,所以以上教程中的 python-dev、openssl-dev 等包都不必安装了。
  2. 可能需要补充的安装包的命令有 pip install Pillowpip install aiohttp_corspip install home-assistant-fronted

接入米家设备

以小米智能插座 WIFI 版为例

  • 最好有已 Root 的安卓设备
  • 米家 app 5.0.19 前版本
  • 最好安装 Google Play

获取小米 WIFI 设备 token 方法

注意 yaml 配置文件所有的 : 后面都应该跟一个空格

switch: 
  - platform: xiaomi_miio 
    name: Original Xiaomi Mi Smart WiFi Socket #给你的插座起个名字 
    host: # 插座的 ip 地址 
    token:    # 你获取的token 
    model: chuangmi.plug.m3

为hass添加小米的智能插座基础版

ha接入小米wifi插座,附miio安装

可能会漏掉的命令:

pip3 install python-mirobo

npm install miio

参考信息

Home Assistant 中文文档

Documentation – Home Assistant

Xiaomi Smart WiFi Socket and Smart Power Strip – Home Assistant

REST API | Home Assistant Developer Documentation

4.1 特定位置摇晃手机开关灯

功能描述

手机在特定角度摇晃一定时间,小米插座会打开/关闭。

米家的联动我也在用,不过使用 Tasker+HA 的话会更自由,更方便,想象空间更大一些。

配置思路

Tasker 更新至 5.9.3 后,新增了 Any Sensor功能,意味着 Tasker 可以使用你手机上很多没列出的传感器了。可以参考这个 Live Creations #42 – New Sensor State, Event and Actions – YouTube 演示视频。

if (左右摇晃,低敏感,长时间) And (gravity 传感器在特定区间内): 
    向 HA 发送开关灯的命令 
Endif

至于怎么利用 Tasker 向 HA 发送请求,可以参考⚙️ Using Tasker with Home Assistant (V2) – Share your Projects! – Home Assistant Community这篇文章,说得非常清楚。

我仍然以小米智能插座 WIFI 版为例展示我的配置(需提前导入 HA call-service 这个任务):

# 关闭小米智能插座 
Tasker 选择『执行任务』,具体参数如下 
Name: HA call-service 
Priority: %priority 
Parameter1(%par1): switch.turn_off 
Parameter2(%par2):{"entity_id":"我设置的小米插座名字"}

4.2 手环单击开关灯

功能描述

在小米手环心率界面,长按震动后单击,小米智能插座会打开/关闭。

配置思路

这部分实际上是 Tasker + Notify&Fitness For Mi Band 的进一步应用。

If 接收到 intent(com.mc.miband.buttonPressed1): 
    向 HA 发送开关灯的命令 
Endif

当然,NF for Mi Band 还可以接收/发送更多的 Intent,你可以在Notify&Fitness for MiBand ,intent 参考文档找到具体的参考说明。

4.3 Quicker 管理 HA 家居

功能描述

这部分其实有点跑题..不过这确实是我折腾 HA 的初衷——实现在电脑上操控智能家居。之前开关灯、空调还需要拿起手机-解锁-点击桌面快捷方式,这样的步骤对于我这样一个懒人实在是太麻烦了。。

现在在 Windows 上直接唤起 Quicker 面板,鼠标点击就可以开关灯、空调设置温度,全程无手机介入,非常舒服。

比如『我出门了』这个命令,运行后台灯、饮水机、空调会自动关闭,电脑也会锁屏并息屏。

Quicker 智能家居管理面板

配置思路

本质上就是通过 Quicker 向 HA 发 Post 请求实现相关操作,具体的细节需要参考REST API | Home Assistant Developer Documentation这个官方文档。

我同样以小米智能插座 WIFI 版本展示 Quicker 发 HTTP 请求关闭插座的相关配置:

  • 网址:http://IP_ADDRESS:8123/api/services/switch/turn_off
  • 方法:POST
  • 请求头:Authorization: Bearer {你生成的 token}
  • 请求体类型:JSON
  • 请求体:{"entity_id":"在‘服务中’找"}

其他可供参考的 API:

  • 米家台灯一代开关灯:http://{IP}:8123/api/services/light/toggle
  • 米家空调伴侣 2 代设定温度:http://{IP}:8123/api/services/climate/set_temperature

参考信息

小米空调伴侣2 插件接入HA

4.4 手机自动保持电量在 40%-80%

功能描述

上文提到的两台手机都是常年放在家里面,兼具短信转发和 HA 中心的功能。为了尽量保证电池的健康和安全,两台手机充电到 80% 会自动断开充电插座,电量降到 40% 会自动打开充电插座。

配置思路

if (电量到达 40/80 %): 
    打开/关闭 充电插座 
Endif

五 Tasker + Join

Join 是 Tasker 作者的另一款产品,用于将 Windows、Android、浏览器、IFTTT 打通的一款工具。

我比较喜欢的几点功能如下:

  • Win10 上 Chrome 打开的网页可以直接投在手机上打开,反之手机打开的网页也可以直接分享到 Chrome 上打开
  • 剪贴板自动同步
  • 多设备之间互相发送通知+Tasker 联动

当然,Join 还有更多的功能,比如电脑控制手机截屏到电脑、录屏到电脑、定位手机、让手机响铃…

不过,Join 很大的一个问题是它借助 FCM 实现推送,所以你需要有稳定的 kx 网络才能获得比较好的使用体验。

此部分无需 Root,adb。

5.1 控制另一台手机播放/暂停音乐、调整音量

功能描述

最近在根据人人都能用英语-语音篇尝试重建自己的语音过滤系统,所以需要听很多英语材料。可手头又没个音箱外放,于是我把目光投向了我闲置已久的短信转发手机——红米 Note 4x。

因为它平时所在的位置比较奇怪,拿起来操作不太方便,所以我希望它除了能够长久播放,还可以通过另一台手机远程控制播放暂停音量。甚至进一步可以实现主力手机有电话进来,它自动停止播放;电话挂掉,它恢复播放这种功能。

在红米上安装完 Tasker 之后,我找到了Poweramp – Music Player for Android 这款本地音乐播放器支持通过 Intent 控制播放/暂停、上一曲、下一曲等操作。所以此部分实际上是 Tasker+Join+Poweramp 。

配置思路

  • 在 Mi10 上的 Tasker 创建一个任务,通过 Join 在 Tasker 上的插件向红米上的 Join 发送一条特定文本
  • 红米上的 Tasker 通过 Join 的插件检测到接收到特定文本,通过 Intent 执行命令以控制 Poweramp 播放

值得注意的一点是,如果你是通过参考文档中 Reddit 网友提供的链接下载的 Poweramp(intents) v1.1 这个『任务』,它默认的 Intent 的 TargetService,如果测试控制不成功的话,可能需要将其改成Activity才能正常使用。你也可以在后面导入我修改好的『任务』。

参考文档

[PROJECT SHARE] PowerAmp control panel to control media function 🙂 : tasker

powerampapi/PowerampAPI.java at master · maxmpz/powerampapi

5.2 另一台手机接收的短信通过 Join 直接转发

功能描述

其实这台手机本身已经配置了通过 IFTTT 转发到 TG 了,添加这个 Tasker Profile 算是多一重保险吧。

如标题所言,红米接收的短信会通过 Join 直接转发到我的 Mi10 上。

不过后来发现,对于经常使用电脑的人而言,还是将短信转发到微信上更方便一些..

配置思路

  • Tasker 检测到短信,通过 Join 将短信内容、发信人、发信时间发送到 Mi10 上

其中可能会用到的变量名称及含义如下

  • %SMSRB:短信文本
  • %SMSRF:发信人
  • %SMSRD:发送日期
  • %SMSRT:发送时间

参考信息

用Tasker实现收到Android手机短信自动转发到微信-Tasker配置教程站

六 Tasker + Keep

6.1 Keep 开始运动后小米手环开始记录

功能描述

因为 Keep 并不支持连接小米手环,所以手环上的很多传感器在 Keep 的运动场景上毫无用武之地。每次想在 Keep 记录运动时,还需要手动打开 NF for Mi Band 创建运动,然后再切回 Keep,非常麻烦。

设置 Tasker 之后可以实现在 Keep 点击『开始运动』后,自动弹出窗口选择手环的运动记录模式并开始记录。

配置思路

if (Logcat Entry 捕捉到 Keep 开始运动的日志): 
    通过 NF for Mi Band 的 Tasker 插件创建某一模式的运动 
Endif 
 
# 参考的 Logcat Entry 配置 
Component: ActivityTaskerManager 
Filter: START u0 {cmp=com.gotokeep.keep/.tc.business.training.core.activity.TrainingActivity (has extras)} from uid 10086

依赖配置

  • 需要安装 Notify&Fitness for Mi Band
  • 无需 Root,但开启 Logcat Entry 功能需要 adb 授权

七 其他

7.1 息屏下连接 Airpods 时自动朗读微信通知

功能描述

见名达意,还可以把 Airpods 换成车载蓝牙,也算变相地实现了微信收消息的车载模式吧。

  • 同一个人多次发送消息只会说一次姓名
  • 多条消息的“[n条]”不会被播报
  • 群聊中的『@微信名』会被替换为『@我』

推荐更进一步的操作:Tasker 一个配置实现微信朗读,微信消息播报+基础版的防撤回-CSDN博客_tasker 获取通知内容

配置思路

主要介绍一下通知文本的处理过程(Mi10 调用的小爱同学发音引擎,其他型号手机需要自行设置)

# 变量说明 
%Wechat_sender #存储微信发信人,由 %evtprm2 赋值 
%say_text #存储通知文本,由 %evtprm3 赋值 
 
If (两次发信人不相同): 
    存储发信人姓名到 %Wechat_sender 
    文字转语音:『%Wechat_sender 说』 
Endif 
存储通知文本到 %say_text 
正则搜索替换『.*:』,去除多条信息的 "[n条]:" 
If(通知文本中有 『@微信名』) 
    搜索『@微信名』为『@我』 
    文字转语音:『@我』 
Endif 
文字转语音:『%say_text』

7.2 连接 Airpods 后且前台非音视频应用自动播放听力

功能描述

和 5.1 一脉相承,同样是为了磨耳朵,主要用于出门在外的场景。

连接 Airpods 后,只要前台不是电话和音视频应用,就自动控制 Poweramp 开始播放,反之停止播放。

配置思路

If (连接了 Airpods) And (前台不是某些应用): 
    Poweramp 开始播放 
Else: 
    停止播放 
Endif

依赖配置

  • 需要安装 Poweramp,地址参考 5.1

7.3 通过小爱同学执行 Tasker 命令

功能描述

向手机的小爱同学说特定文本,执行 Tasker 某条『任务』。

配置思路

以下配置基于 Mi10,MIUI12,其他手机或需要另行修改。同时建议给小爱添加自定义回复,避免小爱回复『听不懂,重说一遍』。

通过 Logcat Entry 检测小爱同学转换的文本

  • Component:XmodeTextView
  • Filter:setTextWithAnimation{要转换的文本}

依赖配置

  • 无需 Root,但 Logcat Entry 需要 adb 开启

7.4 扫描特定 NFC 卡片打开体重秤连接界面

功能描述

手机扫描粘在桌子下 NFC Tag,手机页面自动跳转至 NF For Mi Band 的体重称量界面,自动连接蓝牙,称重数据直接同步到手机。

至于为什么配置这个,同样也是因为 打开手机-找到NF-切换 Tab-点击体重 实在是太麻烦了…

NF For Mi Band 支持的体重秤版本如下:

Since 7.3.6 Notify app version these scales are supported

Please notice, if you are using also the official app of the scale there could be some conflicts. We suggest use only one app (notify or the official app)

Xiaomi Mi Scale 1
Full support

Xiaomi Mi Scale 2
Full support
Body values (fat, water, …) are calculated by cloud notify server. We never save / redistribute any user data on cloud server.

Yunmai Scale Mini
Does not support offline data sync. Can measure values only when is connected.

Yunmai Scale SE
Does not support offline data sync. Can measure values only when is connected.

Beurer BF700 & BF800
Full support

Beurer BF710
Full support

Runtastic Libra
Full support

Sanitas SBF70
Full support

SilverCrest SBF75
Full support

配置思路

# 类别是 Send Intent,下面是具体参数设置 
Package: com.mc.miband1 # NF 的包名 
Class: com.mc.miband1.ui.main10.health.WeightActivity # NF 里面体重秤的 Activity 
Target:Activity

包名、当前页面的 Activity 都可以通过开发者助手(com.toshiba_dealin.developerhelper) – 1.2.1 – 应用 – 酷安网获取。

依赖配置

  • 手机支持 NFC(或者你采用其他触发条件也行)
  • 需要安装 Notify&Fitness for Mi Band,并且自己有支持的体重秤

结语

我曾经在知乎搜索过『Tasker 有什么有趣的玩法』这个问题,不过下面的回答多是 2015、2016 年的,时效性大打折扣。

在国内平台上,受制于 Google 套件和 kx 网络,Tasker 的相关资料比较少,这里要特别感谢少数派@Fairyex 等几位作者写的 Tasker 分享,比较受启发;在国外的平台上,则要感谢 Reddit 上的作者和热心网友了,提供了很多资料与思路。

随着 Tasker 自身的更新和第三方应用的完善,相信 Tasker 会有更多的可能。非常希望大家能够在评论区分享出自己的玩法,供更多朋友参考!

配置链接:https://www.jianguoyun.com/p/Ddu1CC8QyODhBxiB1sID

 

5

0

扫码分享

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu