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

 找回密码
 立即注册
查看: 24615|回复: 120

[插件集成] 北京电费查询加强版

  [复制链接]

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

发表于 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": [7, 8],
        "time_slot": [[11, 13], [16, 17]]
    },
    {
        "key": "峰",
        "time_slot": [[10, 15], [18, 21]]
    },
    {
        "key": "平",
        "time_slot": [[7, 10], [15, 18], [21, 23]]
    },
    {
        "key": "谷",
        "time_slot": [[23, 7]]
    }
    ]

2021.8.18更新

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



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

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

安装
使用HACS以自定义存储库方式安装,或者从[Latest release](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


screenshot.png

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

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

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

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










评分

参与人数 8金钱 +54 HASS币 +10 收起 理由
cym9007 + 5
Exp + 2 高手,这是高手!
miple + 2 高手,这是高手!
yinglively + 5 高手,这是高手!
姚远 + 10 感谢楼主分享!
yonghengdeshang + 5 厉害了word楼主!
tokoy + 5 感谢楼主分享!
+ 20 + 10 厉害了word楼主!

查看全部评分

回复

使用道具 举报

15

主题

636

帖子

2179

积分

金牌会员

Rank: 6Rank: 6

积分
2179
金钱
1543
HASS币
0
发表于 2021-8-16 23:27:49 | 显示全部楼层
赞大佬,就等北京国网电力的插件了。哈哈哈
尽管已经设置了低于50元电费自动购电,但是能实时显示电费情况,更直观。
回复

使用道具 举报

11

主题

164

帖子

1802

积分

金牌会员

Rank: 6Rank: 6

积分
1802
金钱
1638
HASS币
0
发表于 2021-8-17 08:12:50 | 显示全部楼层
感谢分享
辽宁人民在看着电力插件一点点优化升级并且咽了咽了口水
回复

使用道具 举报

74

主题

1942

帖子

7885

积分

元老级技术达人

积分
7885
金钱
5893
HASS币
430

活跃会员教程狂人

发表于 2021-8-17 08:28:13 | 显示全部楼层
天津的公众号都不能用,只能用国网的app,难用的要死
所有过往,皆为序章。
回复

使用道具 举报

4

主题

36

帖子

349

积分

论坛分享达人

积分
349
金钱
313
HASS币
0
发表于 2021-8-17 12:53:03 | 显示全部楼层
用起来~~感谢
回复

使用道具 举报

4

主题

254

帖子

2387

积分

金牌会员

Rank: 6Rank: 6

积分
2387
金钱
2133
HASS币
0
发表于 2021-8-17 17:03:43 | 显示全部楼层
感谢大佬,目前已经用起来了,有个问题,就是当前阶梯剩余额度无法显示,github上提了个issue,希望大佬帮忙解决一下
回复

使用道具 举报

20

主题

550

帖子

3600

积分

元老级技术达人

积分
3600
金钱
3010
HASS币
210

教程狂人突出贡献

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

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

使用道具 举报

4

主题

254

帖子

2387

积分

金牌会员

Rank: 6Rank: 6

积分
2387
金钱
2133
HASS币
0
发表于 2021-8-18 10:25:17 | 显示全部楼层
involute 发表于 2021-8-17 20:36
OK,github上我回复了,你单独下个文件,测试一下并反馈下结果。

可以了,非常感谢
回复

使用道具 举报

175

主题

2956

帖子

7555

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7555
金钱
4574
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2021-8-18 15:48:42 | 显示全部楼层
山东的公众号可以用。貌似可以改改
回复

使用道具 举报

2

主题

10

帖子

64

积分

注册会员

Rank: 2

积分
64
金钱
54
HASS币
0
发表于 2021-8-18 16:34:12 | 显示全部楼层
新手哈,不太懂,我能通过天猫精灵问当前电费么?
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 23:28 , Processed in 0.075212 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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