『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 11564|回复: 48

[新奇玩法] 【安卓tasker】全网话费查询,一招搞定!

[复制链接]

18

主题

587

帖子

4283

积分

元老级技术达人

积分
4283
金钱
3661
HASS币
182
发表于 2022-12-25 13:41:53 | 显示全部楼层 |阅读模式
本帖最后由 louis_lee 于 2022-12-25 18:32 编辑

最近看到有朋友在研究手机话费查询,考虑的方向主要是web、app端抓包等等。今天我们换个思路~

让我们回归到最原始的话费查询方法,发短信。移动、联通、电信等任何一家运营商的手机号,都可以通过发短信的方式查询本机(移动支持查询副卡情况,多台手机可以分别设置实现全家接入)话费余额、流量等信息。

从这个思路出发,实现也很简单,而且完全不用担心登录过期,维护成本低~省心!

step1: 每天定时向10010/10086发送查询话费短信
step2: 收到短信后自动转发到Home Assistant
step3: 利用templating把话费信息从短信中摘出来做成sensor

最开始我试了试IOS的shortcuts,结果问题卡在收到短信转发这步。苹果出于安全考虑,短信触发的自动化每次都需要手动确认,那只能先放一放,回来研究啦。

这时安卓开放性的优势得以体现,没那么多P事。使用安卓tasker可以完美实现上述思路。

安卓Tasker实现全网话费接入HA

Tasker安装

安卓手机打开浏览器从以下链接下载即可,按照app提示做好初步配置。

https://taskerm.com/tasker-download

Tasker配置

任务配置

我们需要先配置两个任务(类似于home assistant的脚本script):发短信、短信转发到HA

首先打开tasker,选择“任务”选项卡,点击右下角加号-》创建,然后取个名字,比如“发送话费查询短信”等等并确认。再按右下角加号,点击“电话”=》“发送短信”
微信图片_20221225132546.jpg

在这个界面中把发送短信的内容,收件人(数字)填写下。我是移动的,数字一栏填写“10086”,内容填写“查话费”(其他运营商的手机号,根据情况填写)。然后按两下左上角后退键回到tasker首页,并按右上角“√”确认。

微信图片_20221225132618.jpg

接下来再配置转发到HA这个任务。对于10086/10010发来的短信,我们也不能全部转发,需要有话费余额的才转发,所以我们需要先配置个转发条件。

同样按照上边的方法创建任务,取名并点击“+”创建操作,筛选器选择“if”。在if操作中,条件左侧输入"%SMSRB"(短信内容),中间匹配方式选择“匹配正则式”,右侧填入"余额为.*元"(这是针对移动的,其他的请结合短信情况,自行修改)。点击返回并选择“if,end if”。

微信图片_20221225132717.jpg

然后我们需要把短信转发到HA,这里直接考虑webhook。点击+号创建操作,选择“网络”-》“http request”。方法选择“Post”,url按照以下内容填写,主体填写"message=%SMSRB"。返回到上一个界面,把http request 拖到if里边。

http(s)://HA外网域名/api/webhook/webhook_id
## webhook_id改成一个复杂的字符串,我使用的UUID,随便百度个UUID在线生成,生成一个复制过来即可

微信图片_202212252132845.jpg
微信图片_2022122513321255.jpg

这样就搞定了,别忘了返回tasker首页后,按“√”保存

配置tasker自动化

tasker自动化配置是在“配置文件”选项卡(很迷惑,但就是这个名称)。

先创建个定时发短信自动化,点击右下角加号选择时间。选一个你想开始的时间,比如说下午两点,那么时间就需要填下午2:00至2:01(1分钟时间间隔)。按返回键,并在弹出的菜单选择“发短信”那个任务。双击斜体的时间标题,可以配置自动化名称(可选项)。
微信图片_20221225133606.jpg
再创建个转发到HA的自动化,点击+号,选择事件-》电话-》收到短信,类型选择短信,发件人选择10086(10010)。同样按返回键,在弹出的菜单选择“转发到HA”这个任务。
微信图片_20221225133913.jpg
最后别忘了点击“√”保存(注意: 任何修改,包括调整定时时间都需要保存)至此,tasker算是配置完了。

Home Assistant配置

home assistant这里我们需要配置个sensor,如果你就是移动的话,直接将如下内容添加到configuration.yaml或其他配置文件即可。

template:
  - trigger:
      - platform: webhook
        webhook_id: 就是上边写的那个webhook_id
    sensor:
      - name: cmcc_balance
        unique_id: cmcc_balance
        state: "{{ (trigger.data.message | regex_findall('余额为(.*)元'))[0]  }}" #如果你是其他的运营商,需要修改下正则表达式
        state_class: measurement
        unit_of_measurement: "RMB"

当然,别忘了重启!好啦这就搞定了,下次触发自动化发短信后,这个sensor.cmcc_balance就会自动更新啦。效果图如下(调试过程中余额有变化)

微信截图_20221225134119.png

后记:如果你不想看到发短信的提醒,可以根据不同的手机类型,选择直接隐藏10010/10086的短信提醒(反正大多数内容没啥用)。如果你想把流量、套餐类型等等内容,接入HA,也可以按照上述步骤,发送不同的短信内容再转发到HA。















评分

参与人数 3金钱 +40 HASS币 +20 收起 理由
kaka0992 + 10 论坛有你更精彩!
+ 20 + 20 纳尼,还有这种操作?
bainiu + 10 膜拜大神!

查看全部评分

回复

使用道具 举报

56

主题

929

帖子

4075

积分

论坛元老

Rank: 8Rank: 8

积分
4075
金钱
3146
HASS币
0
发表于 2022-12-25 14:25:23 | 显示全部楼层
给楼主一个赞,这种方式直接稳定。按楼主的这种查询方式,应该只能查询本机的话费吧。

一直在想如何查询全家人手机话费余额,家里老人手机总是忘记缴费导致停机。中国移动APP中可以在我的家庭中鉴权后可添加老人的手机号码,可以查询和缴费。试过在微信公众号中抓包,但是有时间限制,过期就查不到了,要有一个通用的API查询话费就好了。
回复

使用道具 举报

18

主题

587

帖子

4283

积分

元老级技术达人

积分
4283
金钱
3661
HASS币
182
 楼主| 发表于 2022-12-25 14:32:39 | 显示全部楼层
本帖最后由 louis_lee 于 2022-12-25 14:44 编辑
bainiu 发表于 2022-12-25 14:25
给楼主一个赞,这种方式直接稳定。按楼主的这种查询方式,应该只能查询本机的话费吧。

一直在想如何查询全 ...

我觉得不大可能有通用的API,毕竟这涉及隐私问题。之前联通被人翻出一个不需要鉴权的API接口,结果几天后秒没。

使用这个方法,需要查询哪个手机的余额,只要在那个手机上配置一下tasker即可,5分钟的事,也不麻烦~
如果家里话费是使用主卡、副卡这种,应该可以支持一部手机查询多个的功能。
回复

使用道具 举报

4

主题

65

帖子

609

积分

高级会员

Rank: 4

积分
609
金钱
544
HASS币
0
发表于 2022-12-25 15:21:21 | 显示全部楼层
不错支持
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2022-12-25 17:18:40 | 显示全部楼层
这个思路非常不错,大赞!
回复

使用道具 举报

18

主题

587

帖子

4283

积分

元老级技术达人

积分
4283
金钱
3661
HASS币
182
 楼主| 发表于 2022-12-25 17:20:07 | 显示全部楼层
囧 发表于 2022-12-25 17:18
这个思路非常不错,大赞!

感谢囧大
回复

使用道具 举报

46

主题

1654

帖子

6676

积分

论坛元老

Rank: 8Rank: 8

积分
6676
金钱
5012
HASS币
40
发表于 2022-12-25 17:59:59 | 显示全部楼层
高手是高手,不过这个软件是不是要在app后台运行
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

73

主题

1165

帖子

6641

积分

论坛元老

Rank: 8Rank: 8

积分
6641
金钱
5471
HASS币
30
发表于 2022-12-25 18:04:42 | 显示全部楼层
只能用本机查询本机卡的话费,这个功能,没有什么用处。如果能用一个闲置手机查询全家人都话费余额,才有用!
回复

使用道具 举报

18

主题

587

帖子

4283

积分

元老级技术达人

积分
4283
金钱
3661
HASS币
182
 楼主| 发表于 2022-12-25 18:15:39 | 显示全部楼层
本帖最后由 louis_lee 于 2022-12-25 18:34 编辑
xuyang 发表于 2022-12-25 18:04
只能用本机查询本机卡的话费,这个功能,没有什么用处。如果能用一个闲置手机查询全家人都话费余额,才有用 ...

你说的闲置手机查询,安卓的话用adb + appium或其他自动化测试框架应该可以实现。不过可能需要楼上说的,app里绑定成一个家庭。
另外如果一个家庭的话,办理多个副卡的,也可以查询副卡的余额,这种支持短信查询。或者每个手机都设置一遍
回复

使用道具 举报

18

主题

587

帖子

4283

积分

元老级技术达人

积分
4283
金钱
3661
HASS币
182
 楼主| 发表于 2022-12-25 18:18:03 | 显示全部楼层
jjcs 发表于 2022-12-25 17:59
高手是高手,不过这个软件是不是要在app后台运行

是的,需要改一下电池方案,后台运行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-24 08:41 , Processed in 0.631897 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表