通过“北京燃气” APP 的接口,采集你的家庭用气信息。
- 支持北京燃气智能物联网燃气表(简称 NB 表,见下图)的用气信息采集,目前仅支持单户号
- 数据为定时更新,更新间隔为 10 分钟
- 支持阶梯用气
下载“北京燃气” APP,注册登录并绑定户号,然后点击“用气分析”,应该就可以看到该户号的用气信息。
使用任何网络抓包软件,如安卓手机的 Fiddler, 苹果手机的 Stream,进行抓包,可以只关注 zt.bjgas.com 域名下的请求。 抓包时在“北京燃气” APP 上进行操作,查看一下用气分析。看到 HTTP HEADER 中有内容为 “Authorization: Bearer XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” 的内容,将 “Authorization: Bearer ” 后的内容复制下来,这个字符串就是 token,保存备用。
使用 HACS 以自定义存储库方式安装,或者从 Latest release 下载最新的 Release 版本,将其中的 custom_components/bj_gas
放到你 Home Assistant 的 custom_components/bj_gas
中。
在 configuration.yaml
中,增加配置如下:
bj_gas:
client_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
client_secret: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
encrypted_username: xxxxxx
encrypted_password: xxxxxx
重新启动 Home Assistant
包含的传感器
entity_id 形式 | 含义 | 属性 | 备注 |
---|---|---|---|
sensor.XXXXXXXXXXX_balance | 燃气费余额 | last_update - 网端数据更新时间 | |
sensor.XXXXXXXXXXX_current_level | 当前用气阶梯 | ||
sensor.XXXXXXXXXXX_current_level_remain | 当前阶梯剩余额度 | ||
sensor.XXXXXXXXXXX_current_price | 当前气价 | ||
sensor.XXXXXXXXXXX_year_consume | 本年度用气量 | ||
sensor.XXXXXXXXXXX_month_reg_qty | 本月用气量 | ||
sensor.XXXXXXXXXXX_battery_voltage | 气表电量 | ||
sensor.XXXXXXXXXXX_mtr_status | 阀门状态 | ||
sensor.XXXXXXXXXXX_monthly_* | 月度用气情况 | name - 月份 state - 用气量 consume_bill - 该月燃气费 |
*取值为1-12 |
sensor.XXXXXXXXXX_daily_* | 最近一周用气 | name - 日期 state - 用气量 |
*取值为1-7 |
其中 XXXXXXXXXXX 为北京燃气用户户号
历史数据采用 flex-table-card展示
type: vertical-stack
cards:
- type: entities
entities:
- entity: sensor.XXXXXXXXXXX_balance
- entity: sensor.XXXXXXXXXXX_month_reg_qty
- entity: sensor.XXXXXXXXXXX_current_level
- entity: sensor.XXXXXXXXXXX_current_level_remain
- entity: sensor.XXXXXXXXXXX_current_price
- entity: sensor.XXXXXXXXXXX_year_consume
- entity: sensor.XXXXXXXXXXX_battery_voltage
- entity: sensor.XXXXXXXXXXX_mtr_status
title: 燃气信息
- type: custom:flex-table-card
title: 月度用气情况
entities:
include: sensor.XXXXXXXXXXX_monthly_*
columns:
- name: 月份
data: name
- name: 用气量
data: state
- name: 费用
data: consume_bill
- type: custom:flex-table-card
title: 最近一周用气情况
entities:
include: sensor.XXXXXXXXXXX_daily_*
columns:
- name: 日期
data: name
- name: 用气量
data: state
你也可以根据需要采用自己的展示形式