/bj_gas

查询北京用户的燃气信息,并集成到 HomeAssistant 中

Primary LanguagePythonMIT LicenseMIT

北京燃气信息查询

hacs_badge Stable

通过“北京燃气” APP 的接口,采集你的家庭用气信息。

特性

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

5371667306978_pic_hd

使用之前

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

使用任何网络抓包软件,如安卓手机的 Fiddler, 苹果手机的 Stream,进行抓包,可以只关注 zt.bjgas.com 域名下的请求。 抓包时在“北京燃气” APP 上进行操作,查看一下用气分析。看到 HTTP HEADER 中有内容为 “Authorization: Bearer XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX” 的内容,将 “Authorization: Bearer ” 后的内容复制下来,这个字符串就是 token,保存备用。

http_sniff

安装

使用 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

screenshot_1

你也可以根据需要采用自己的展示形式

特别鸣谢

瀚思彼岸论坛@crazysiri@involute