involute 发表于 2021-8-16 19:43:50

北京电费查询加强版

本帖最后由 involute 于 2023-8-15 18:55 编辑

北京用电信息查询
通过“国网北京电力”微信公众号的接口,采集你的家庭用电信息。


# 2022.6.24更新-v0.2.1
- 更新了数据获取接口
   2-3月份时北京国网电力公众号进行了长达一个月的维护,近期偶尔查看才发现部分接口已经完全变更,虽然目前老接口还可以用,但此次更新将全部转为新接口获取数据,以防止老接口停止提供数据
- 优化了启动加载
   尝试解决部分情况下,HA启动时无法正常完成数据获取导致实体无效的问题

# 2022.6.17更新-v0.1.4
- 修正了上一个版本的BUG

# 2022.6.16更新-v0.1.3
- 支持采集最近30日用电情况
为此增加传感器sensor.XXXXXXXX_daily_XX(XX为1-30数字),传感器及其说明请见文档
目前只确定day_consume1是平时用电,day_consume2/3/4到底哪个对应尖/峰/谷,我还没弄清楚。希望有能力的同学帮我查证一下。

# 2022.6.2更新-v0.1.2
- 修改传感器扩展属性,解决HA2022版本历史数据中电费金额无法获取的问题

# 2021.9.10更新-v0.1.1
- 补回了峰谷用户遗漏的用电类别传感器
- 重写阶梯用户判断及取数据方法
- 判断方法不知是否准确,有待反馈



# 2021.9.5更新- 支持非居民用户的峰平谷电价类别策略
- 为峰平谷用户新增当前电价类别传感器
- 为峰平谷用户移除不必要的传感器
- 因为峰平谷用电政策可能会发生变化,所以在const.py中加入峰平谷配置
```
PGC_PRICE = [
    {
      "key": "尖峰",
      "month": ,
      "time_slot": [, ]
    },
    {
      "key": "峰",
      "time_slot": [, ]
    },
    {
      "key": "平",
      "time_slot": [, , ]
    },
    {
      "key": "谷",
      "time_slot": []
    }
]
```

# 2021.8.18更新

- 修复了阶梯2时无法正确显示剩余额度的错误




使用之前
首先关注“国网北京电力”微信公众号,打开微营业厅->个人中心->户号关联,确保你至少已关联一个北京国网电力的户号。如果没有关联,在此进行户号关联操作。此时点开微营业厅,应已经可以看到关联的用户,点击用户,可以看到该用户的用电信息。

使用任何网络抓包软件,如安卓手机的Fiddler, 苹果手机的Stream,进行抓包,过滤条件可以选择"HTTP"。抓包时在微营业厅上进行操作,查看一下用电信息。看到HTTP HEADER中有内容为“user_openid=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”的内容,将user_openid=后的内容复制下来,如果最后是以\r\n结尾,则去掉\r\n,如果后部包含等于号"=",保留等于号。这个字符串就是openid,保存备用。


安装
使用HACS以自定义存储库方式安装,或者从(https://github.com/georgezhao2010/bj_sgcc_energy/releases/latest)下载最新的Release版本,将其中的custom_components/bj_sgcc_engergy放到你的Home Assistant的custom_components/bj_sgcc_engergy中。

推荐使用HACS安装,这样后期有更新,会自动收到提示。

配置
在configuration.yaml中,增加配置如下:

bj_sgcc_energy:
openid: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' #此为微信公众号中抓取的openid
重新启动Home Assistant

特性

[*]如果公众号中关联了多个北京国电用户,则支持多个用户用电信息的采集。
[*]支持实时用电单价实体,可用于Home Assistant 2021.8.X最新的能源模块的实时电费计算。
[*]数据为定时更新,更新间隔为10分钟。


传感器

| entity_id形式 | 含义 | 属性 | 备注 |
| ---- | ---- | ---- | ---- |
| sensor.XXXXXXXXXX_balance | 电费余额 | last_update - 网端数据更新时间 |
| sensor.XXXXXXXXXX_current_level | 当前用电阶梯(峰平谷用户无此项) |
| sensor.XXXXXXXXXX_current_level_consume | 当前阶梯用电(峰平谷用户无此项) |
| sensor.XXXXXXXXXX_current_level_remain | 当前阶梯剩余额度(峰平谷用户无此项) |
| sensor.XXXXXXXXXX_current_pgv_type | 当前电价类别(阶梯用户无此项) | |可能的值:峰、平、谷、尖峰(?)|
| sensor.XXXXXXXXXX_current_price | 当前电价 |
| sensor.XXXXXXXXXX_year_consume | 本年度用电量 |
| sensor.XXXXXXXXXX_year_consume_bill | 本年度电费 |
| sensor.XXXXXXXXXX_history_XX | 过去12个月用电 | name - 月份;consume_bill - 该月电费| XX取值为1-12|
| sensor.XXXXXXXXXX_daily_XX | 过去30天用电 | name - 日期<br/>bill_time - 采集时间;day_consume1 - 平时用电;day_consume2 - 尖时用电?;day_consume3 - 峰时用电?;day_consume4 - 谷时用电?| XX取值为1-30|



其中XXXXXXXXXX为北京国电用户户号

示例
历史数据采用flex-table-card展示

type: vertical-stack
cards:
- type: entities
    entities:
      - entity: sensor.XXXXXXXXXX_balance
      - entity: sensor.XXXXXXXXXX_current_level
      - entity: sensor.XXXXXXXXXX_current_level_consume
      - entity: sensor.XXXXXXXXXX_current_level_remain
      - entity: sensor.XXXXXXXXXX_current_price
      - entity: sensor.XXXXXXXXXX_year_consume
      - entity: sensor.XXXXXXXXXX_year_consume_bill
    title: 家1
- type: custom:flex-table-card
    title: 过去12个月用电情况
    entities:
      include: sensor.XXXXXXXXXX_history_*
    columns:
      - name: 月份
      data: name
      - name: 用电量
      data: state
      - name: 电费
      data: consume_bill
- type: custom:flex-table-card
    title: 过去30天用电情况
    entities:
      include: sensor.XXXXXXXXXX_daily_*
    columns:
      - name: 日期
      data: name
      - name: 用电量
      data: state
      - name: 尖时用电
      data: day_consume2
      - name: 峰时用电
      data: day_consume3
      - name: 平时用电
      data: day_consume1
      - name: 谷时用电
      data: day_consume4




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

特别鸣谢
瀚思彼岸论坛的@crazysiri,直接使用了他的部分代码。

项目地址
https://github.com/georgezhao2010/bj_sgcc_energy
觉得有用的点个星哦

压缩包下载
压缩包移除,这里不做更新了,请去GITHUB下载最新版release好了










telanx 发表于 2021-8-16 23:27:49

赞大佬,就等北京国网电力的插件了。哈哈哈
尽管已经设置了低于50元电费自动购电,但是能实时显示电费情况,更直观。

735473216 发表于 2021-8-17 08:12:50

感谢分享
辽宁人民在看着电力插件一点点优化升级并且咽了咽了口水

咸味土豆 发表于 2021-8-17 08:28:13

天津的公众号都不能用,只能用国网的app,难用的要死

kaspar 发表于 2021-8-17 12:53:03

用起来~~感谢

crazymouse 发表于 2021-8-17 17:03:43

感谢大佬,目前已经用起来了,有个问题,就是当前阶梯剩余额度无法显示,github上提了个issue,希望大佬帮忙解决一下

involute 发表于 2021-8-17 20:36:28

crazymouse 发表于 2021-8-17 17:03
感谢大佬,目前已经用起来了,有个问题,就是当前阶梯剩余额度无法显示,github上提了个issue,希望大佬帮 ...

OK,github上我回复了,你单独下个文件,测试一下并反馈下结果。

crazymouse 发表于 2021-8-18 10:25:17

involute 发表于 2021-8-17 20:36
OK,github上我回复了,你单独下个文件,测试一下并反馈下结果。

可以了,非常感谢

jyz_0501 发表于 2021-8-18 15:48:42

山东的公众号可以用。貌似可以改改 :D

aiyst 发表于 2021-8-18 16:34:12

新手哈,不太懂,我能通过天猫精灵问当前电费么?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 北京电费查询加强版