v0.7.11 更新
新功能:在 HA 内修改国网登录密码
集成「配置」页面新增「新密码」字段,解决用户在国网官方修改密码后无法在 HA 内同步更新的问题。
工作流程
- 留空:不修改密码,走原逻辑(不影响其它字段配置)
- 填写:提交时触发一次
password_login验证新密码- RK001 冷却期内禁止验证:避免把"登录限流"误判为"密码错误"
- 手机号遇 RK001 且配置了邮箱:自动邮箱降级验证
- 验证成功:
password_login内部自动save_data()持久化新密码(MD5),下次轮询自动用新密码 - 验证失败:显示对应错误码(
invalid_auth/rk001_rate_limit等),旧密码保持不变
安全设计
密码不进 ConfigEntry(entry.options / entry.data),仍按原项目设计存在 state_grid.config Store 文件里以 MD5 形式。提交后 new_password 字段不会回填表单(password 类型字段默认行为)。
附带修复
strings.json补齐config.error.rk001_rate_limit:原代码async_step_user里用到但未定义,UI 会显示原始字符串- 修复
async_step_user中调用不存在的dc._login_with_email_fallback()的隐藏 bug:邮箱降级那段代码原本是死代码,调用即抛AttributeError被外层 except 吞掉,邮箱降级从未真正生效。改为dc.password_login(email, password)
新增 i18n key(options.error)
invalid_auth— 新密码验证失败cannot_connect— 无法连接到国家电网服务器no_account— 未找到运行中的集成实例rk001_cooldown_cannot_verify— 冷却期内无法验证rk001_rate_limit— 密码登录日额度已用完
使用方法
- 覆盖安装
custom_components/state_grid/后重启 HA - 进入 设置 → 设备与服务 → 国家电网 → 配置
- 滚动到底部,会看到新字段「新密码(留空不修改;填写后会触发一次登录验证)」
- 填入国网新密码 → 提交
- 后台会调一次
password_login验证:- 成功 → 表单关闭,新密码已写入 Store,下次轮询自动用新密码
- 失败 → 表单回弹并显示错误(旧密码不变)
- RK001 冷却期 → 提示"明日0点后重试"
- 手机号 RK001 且配了邮箱 → 自动邮箱降级验证
注意事项
- 验证过程会真实调用 LLM 解验证码(消耗少量 token)和一次 95598 登录接口(消耗一次日额度)
- 若集成已处于 RK001 冷却期,需等到次日 0 点(北京时间)后再来修改密码