你是否也经历过这样的时刻:洗澡洗到一半,燃气突然断供?作为一名追求效率的开发者,我无法忍受这种“不可控”的琐事。

但是官方app与短信只支持300元以下的通知,实际上使用体验不是很好

今天,我利用 n8n 自动化引擎、Stream 抓包工具和 Bark 推送服务,彻底搞定了“北京燃气”和“电费余额”的实时监控。以下是全流程复盘,希望对你有启发。

01 痛点:余额查起来太麻烦
北京燃气和很多物业电费的余额查询,通常需要打开专门的 App 或繁琐的微信服务号菜单,需要去主动查看余额情况,保不齐什么时间忘记

我的需求:每天定时查询。

我的预警线:余额低于 100 元时,必须第一时间主动通知。

基于这个我去查询了一些相关资料,GitHub上正好一个基于北京燃气信息集成到HA的方案,于是我便参考了这个方案进行了改动

02 获取网络请求信息:Stream 手机抓包
要实现自动化,第一步是拿到查询燃气余额接口。

支持北京燃气智能物联网燃气表(简称 NB 表,见下图)的用气信息采集,目前仅支持单户号
数据为定时更新,更新间隔为 10 分钟
支持阶梯用气
5371667306978_pic_hd

使用之前
下载“北京燃气” APP,注册登录并绑定户号,然后点击“用气分析”,应该就可以看到该户号的用气信息。

工具选择:由于我是苹果手机使用Stream进行抓包,安卓手机可以使用安卓手机的 Fiddler

实操过程:
打开开始抓包操作,抓包时在“北京燃气” APP 上进行操作,查看一下用气分析。可以只关注 zt.bjgas.com 域名下的请求。

http_sniff

关键发现:

URL:找到了 /getGasBalance 类的请求地址。

Header:最重要的信息是 Authorization 里的 Token。

响应体:返回的 JSON 数据中,remainAmt: 85.84 就是我们要的余额。

技术坑位提醒:有些接口带有 sign 签名校验,时效极短且算法复杂。对于这类接口,建议退而求其次,采用“工资日”定时提醒模式。

03 中枢:n8n 自动化逻辑构建
我将监控逻辑部署在 VPS 的 Docker 容器中。

定时触发:设置 Schedule Trigger。为了符合国人习惯,我将时区配置为 Asia/Shanghai (UTC+08:00),定于每天上午 12:34 运行。

HTTP 请求:

Method:GET。

Headers:填入从 Stream 抓取的身份凭证。

逻辑判断 (IF Node):

判断逻辑:$json.remainAmt < 100。

结果:只有当余额告急时,才触发后续动作。
2026-01-06T13:45:17.png

04 触达:Bark 实时精准推送
Bark 是 iOS 上最极简的推送工具。

升级 POST 方式:为了更稳健,我弃用了 GET 拼接,改用 POST 发送 Body。

Payload 配置:

Title:北京燃气余额预警。

Body:当前余额仅剩 $json.remainAmt 元。

URL:配置为 alipays://platformapi/startapp?appId=20000193(点击通知直接跳转支付宝缴费页面,实现闭环)。

这是最终实现效果(正常是定时每天九点,我手动跑了一次)
2026-01-06T13:48:48.png