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

 找回密码
 立即注册
查看: 31886|回复: 132

[插件集成] 南方电网电费数据集成,支持短信验证码和扫码登陆

  [复制链接]

2

主题

33

帖子

582

积分

论坛技术达人

积分
582
金钱
544
HASS币
20
发表于 2022-11-19 13:28:45 | 显示全部楼层 |阅读模式
本帖最后由 cubicpill 于 2024-9-19 03:22 编辑

2024.09.19 已经适配最新登录API,可选择短信验证码或扫码登录。

南方电网电费数据HA集成

本集成已经加入HACS默认存储库,可以在HACS直接搜索安装

注意:本集成需求Home Assistant最低版本为2022.11

本集成仅适用于南方电网覆盖范围(广东、广西、云南、贵州、海南),国网接口与南网不通用,因此无法适配。

--------------------------------2024.09.19更新---------------------------------------------------

v1.2.0 更新登录方式

功能性更新:

  • 由于登录API调整,原账号密码登录方式已失效。目前支持手机号+短信验证码,手机号+密码+短信验证码和南网在线APP、微信、支付宝扫码登录。
  • 更改了初次加载集成或重载集成时的更新逻辑,初次更新数据不会再阻塞UI界面。
  • 更改了电费账户的移除逻辑,目前版本如需移除账号,可直接删除设备。

非功能性更新:

  • 增加了更多获取日电量的API,将会在之后版本使用。
  • 更新了账号登录态过期的处理逻辑。
  • 南网API库的细节更改。

如有新增bug,欢迎反馈。
--------------------------------以下正文---------------------------------------------------

在论坛里看到 @louis_lee 大佬写的国网电费数据接入,奈何lz人在南网区域内,没办法直接用现成的插件。
看了一下论坛里大部分都是用Node-RED配合抓包得到的数据接入,比较麻烦,正好最近有点空研究了一下国网网上营业厅的登陆页面,发现比想象中容易,一步一步把登陆时的加密解密实现了。
后来发现网页端的登录态几个小时就会过期,于是又抓包研究了一下App(南网在线),发现App和网页端接口基本相同,但是登录态有效时间长很多,于是切换到了App端的API。
第一次写HA的集成,磕磕绊绊从有想法开始到最终实现写了接近两个周,期间参考了无数论坛和Github前辈们的代码,难免会有一些bug,请见谅。

由于该集成直接使用 Web API 登陆,因此资源消耗相对较小,性能较弱的机器也可以放心使用。

目前实现的功能如下,详细内容请看Github:https://github.com/CubicPill/china_southern_power_grid_stat

支持功能

  • ✅支持南方电网覆盖范围内的电费数据查询(广东、广西、云南、贵州、海南)
  • ✅支持使用手机号、短信验证码和密码(可选)登录,支持南网在线APP、微信、支付宝扫码登录
  • ✅支持多个南网账户(每个账户一个集成),支持单个账户下的多个缴费号
  • ✅数据自动抓取和更新(默认间隔4小时,可配置)
  • ✅全程GUI配置,无需编辑yaml进行配置(暂不支持yaml配置)

可接入如下数据:

  • 当前余额和欠费
  • 当前阶梯电量数据(档位、阶梯剩余电量、阶梯电价)
  • 昨日用电量
  • 最新一日用电量、电费(取有数据的最近一日)
  • 本年度总用电量、总电费(非实时,更新到上个月)
  • 本年度每月用电量、电费(非实时,更新到上个月)
  • 上年度总用电量、总电费
  • 上年度每月用电量、电费
  • 当月累计用电量、电费(非实时,有2天左右的延迟)
  • 当月每日用电量、电费(非实时,有2天左右的延迟)
  • 上月累计用电量、电费
  • 上月每日用电量、电费

不支持阶梯电费设置(仅能获取当前所在阶梯)、峰谷电价设置和电费计算(本插件只进行数据抓取和转换,不进行任何计算),
暂时也没有支持计划(南网暂时没有统一的API),如有需求,建议单独创建对应的电价实体。

❌因为南网登录API调整,不再支持登录态失效之后自动重新登录,需要手动重新登录。

使用方法

使用HACS手动下载安装

注意:本集成需求Home Assistant最低版本为2022.11

传感器列表

  • 余额
  • 欠费
  • 当前阶梯档位
  • 当前阶梯剩余电量
  • 当前阶梯电价
  • 上月电费
  • 上月用电量
  • 当月用电量
  • 当月电费
  • 本年度电费
  • 本年度用电量
  • 上年度电费
  • 上年度用电量
  • 最近日用电量
  • 最近日电费
  • 昨日用电量

Thank you

感谢瀚思彼岸论坛以下帖子作者的辛苦付出,排名不分先后

自定义集成教程参考:Building a Home Assistant Custom Component Part 1: Project Structure and Basics

















sensor_attr.png
sensors.png
setup_add_account.png
setup_login.png
setup_params.png
setup_select_account.png

评分

参与人数 12金钱 +113 HASS币 +20 收起 理由
cooliscool + 5 厉害了word楼主!
danmin + 5 谢谢分享用了1个月,回来感谢!.
274911110 + 2 感谢楼主分享!
flyice + 8 感谢楼主分享!
sorrypqa + 10 大神666!
25989406 + 10 论坛有你更精彩!
chenquanhao + 10 论坛有你更精彩!
ruike007 + 8 特别赞
佳艺造型 + 10 感谢楼主分享!
fsscyd + 5 终于见到南方电网的了,对小白来说太合适了.
+ 20 + 20 厉害了word楼主!
dscao + 20 论坛有你更精彩!

查看全部评分

回复

使用道具 举报

19

主题

251

帖子

1138

积分

金牌会员

Rank: 6Rank: 6

积分
1138
金钱
887
HASS币
0
发表于 2022-11-19 14:24:52 来自手机 | 显示全部楼层
把国网也做了。坛子里国网那个用docker太耗费资源了。
回复

使用道具 举报

1

主题

40

帖子

459

积分

论坛分享达人

积分
459
金钱
419
HASS币
10
发表于 2022-11-19 14:56:16 | 显示全部楼层
厉害了,插件都出来了,我本来还想再让流程进化一下的,现在看来不用了哈哈哈哈哈
回复

使用道具 举报

0

主题

29

帖子

544

积分

高级会员

Rank: 4

积分
544
金钱
515
HASS币
0
发表于 2022-11-19 15:08:56 | 显示全部楼层
点添加已绑定的缴费号时候出现 Unknown error occurred
回复

使用道具 举报

23

主题

227

帖子

2774

积分

金牌会员

Rank: 6Rank: 6

积分
2774
金钱
2547
HASS币
0
发表于 2022-11-19 15:10:38 | 显示全部楼层
大佬,能否帮忙看下这个微信小程序的登陆怎么弄? token过一段时间就不行了。https://bbs.hassbian.com/thread-14730-1-1.html
回复

使用道具 举报

77

主题

1391

帖子

2万

积分

元老级技术达人

积分
24293
金钱
22862
HASS币
290
发表于 2022-11-19 15:27:27 | 显示全部楼层
好东西,来学习学习。
回复

使用道具 举报

55

主题

299

帖子

5047

积分

元老级技术达人

积分
5047
金钱
4738
HASS币
80
发表于 2022-11-19 15:40:00 | 显示全部楼层
不考虑向后兼容的话,密码存储可以用公钥加密后的值以避免明文存储密码,token可以在内存中刷新,没必要通过reload集成的方式。对于密码错误之类的exception还可以在follow和sensor中优化,遇到错误就停下,以免反复尝试被锁号。
回复

使用道具 举报

0

主题

47

帖子

643

积分

高级会员

Rank: 4

积分
643
金钱
596
HASS币
0
发表于 2022-11-19 17:51:16 | 显示全部楼层
真厉害啊,今晚试试
回复

使用道具 举报

2

主题

47

帖子

329

积分

中级会员

Rank: 3Rank: 3

积分
329
金钱
282
HASS币
0
发表于 2022-11-19 18:24:35 | 显示全部楼层
ucomeito 发表于 2022-11-19 15:08
点添加已绑定的缴费号时候出现 Unknown error occurred

我也是这样
回复

使用道具 举报

10

主题

1328

帖子

4238

积分

论坛元老

Rank: 8Rank: 8

积分
4238
金钱
2910
HASS币
0
发表于 2022-11-19 18:28:14 | 显示全部楼层
这是大佬,大佬。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 01:43 , Processed in 0.412433 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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