Skip to content

tiejiang29/state_grid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

国家电网 Home Assistant 集成

GitHub release

基于 bilezhou/state_grid 原版改造,数据获取逻辑完全沿用原版,仅增强了登录部分,解决了原版验证码无法自动通过的问题。

与原版(bilezhou)的差异

特性 原版 本版
数据获取 ✅ 完全相同,未做任何修改
滑块验证码 像素算法(成功率低) LLM 视觉大模型 + 像素算法双模式
点选验证码 ❌ 不支持 ✅ LLM 视觉大模型自动识别
验证码类型检测 仅滑块 自动检测滑块/点选,分别处理
RK001 流控处理 反复重试直到封号 冷却到当日23:59:59,不再无效重试
手机号限流降级 ✅ 自动切换邮箱登录
预付费余额传感器 有(常显示未知) 已移除,保留账户余额传感器
数据刷新间隔 8小时 12小时(国网官网每日更新一次)

一句话总结:数据获取 = 原版代码,登录部分 = 增强版(LLM验证码 + 流控降级)。

功能特性

  • 账户余额
  • 日用电量 — 日总/峰/谷/平/尖用电量
  • 月用电量 — 当月累计分时用电量
  • 年度数据 — 年度累计用电量、电费
  • 历史图表 — 最近30天每日用电、最近12个月每月用电
  • LLM 验证码 — 使用视觉大模型自动识别点选/滑块验证码
  • 流控降级 — 手机号登录遇 RK001 限流时,自动切换邮箱登录

安装

方式一:HACS 安装(推荐)

  1. 在 HACS 中点击 集成
  2. 点击右下角 探索与下载仓库
  3. 点击右下角 自定义仓库
  4. 仓库地址填入:https://github.com/tiejiang29/state_grid
  5. 类别选择:集成
  6. 点击 添加下载
  7. 重启 Home Assistant

方式二:手动安装

  1. Releases 下载最新 zip
  2. state_grid 文件夹复制到 Home Assistant 的 custom_components/state_grid/ 目录
  3. 重启 Home Assistant

配置

  1. 进入 设置设备与服务添加集成
  2. 搜索 "国家电网"
  3. 填写配置信息:
    • 手机号:国家电网手机号(必填,优先使用)
    • 备用邮箱:流控降级用(选填,手机号遇限流时自动切换)
    • 密码:国家电网密码
    • LLM API Key:大模型 API 密钥(必填,用于验证码识别)
    • LLM Base URL(可选):默认为火山引擎豆包 API
    • LLM Model(可选):默认为 doubao-seed-2-0-pro-260215

修改密码

在国网官网或 App 修改了登录密码后,无需删除集成重新配置,可直接在 HA 内更新:

  1. 进入 设置设备与服务国家电网配置
  2. 滚动到底部,找到 「新密码(留空不修改;填写后会触发一次登录验证)」 字段
  3. 填入国网新密码 → 点击 提交
  4. 集成会调用一次 password_login 验证新密码:
    • 验证成功:表单关闭,新密码自动写入本地存储(MD5 形式),下次数据刷新即用新密码
    • 验证失败:表单回弹显示错误,旧密码保持不变,可重试
    • RK001 冷却期:提示"明日0点后重试"(防止把登录限流误判为密码错误)
    • 手机号遇 RK001 且配置了邮箱:自动邮箱降级验证

密码以 MD5 形式存储在 HA 的 state_grid.config Store 文件中,不进入 ConfigEntry 配置项。 验证过程会消耗一次 LLM 验证码识别 + 一次 95598 登录额度。

流控降级说明

95598 API 对手机号登录有日额度限制(错误码 11401 / RK001),触发后手机号当天无法再登录。配置备用邮箱后,集成会:

  1. 优先使用手机号登录
  2. 检测到流控错误时,自动切换到邮箱登录(同一密码)
  3. 设置冷却至当日 23:59:59,期间不再尝试手机号登录
  4. 邮箱登录成功后继续正常获取数据

获取 LLM API Key

推荐使用火山引擎豆包大模型(注册送免费额度,验证码识别消耗极低):

  1. 访问 火山引擎
  2. 注册并开通豆包大模型
  3. 创建 API Key
  4. 填入配置即可

也支持任何 OpenAI 兼容的 API(如 OpenAI、Azure、Gemini 等)。

传感器列表

传感器 说明 单位
账户余额 电费账户余额
年度累计用电 年度总用电量 kWh
年度累计峰用电 年度峰时段用电 kWh
年度累计谷用电 年度谷时段用电 kWh
年度累计平用电 年度平时段用电 kWh
年度累计尖用电 年度尖时段用电 kWh
年度累计电费 年度总电费
上个月用电 上月总用电量 kWh
上个月电费 上月总电费
上个月抄表 上月抄表数 -
当月累计用电 当月总用电量 kWh
当月累计峰/谷/平/尖用电 当月分时用电 kWh
日总/峰/谷/平/尖用电 日分时用电 kWh
最近30天每日用电 图表数据 -
最近12个月每月用电 图表数据 -
最新日用电日期 数据截止日期 -
最近刷新时间 上次刷新时间 -

致谢

免责声明

本项目仅供学习交流使用,请勿用于商业用途。使用本集成即表示您同意自行承担相关风险。

About

国家电网 Home Assistant 自定义集成 - 支持点选/滑块验证码(LLM)

Resources

Stars

23 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages