Skip to content

v0.7.11

Latest

Choose a tag to compare

@tiejiang29 tiejiang29 released this 09 Jul 15:53

v0.7.11 更新

新功能:在 HA 内修改国网登录密码

集成「配置」页面新增「新密码」字段,解决用户在国网官方修改密码后无法在 HA 内同步更新的问题。

工作流程

  • 留空:不修改密码,走原逻辑(不影响其它字段配置)
  • 填写:提交时触发一次 password_login 验证新密码
    • RK001 冷却期内禁止验证:避免把"登录限流"误判为"密码错误"
    • 手机号遇 RK001 且配置了邮箱:自动邮箱降级验证
    • 验证成功password_login 内部自动 save_data() 持久化新密码(MD5),下次轮询自动用新密码
    • 验证失败:显示对应错误码(invalid_auth / rk001_rate_limit 等),旧密码保持不变

安全设计

密码不进 ConfigEntryentry.options / entry.data),仍按原项目设计存在 state_grid.config Store 文件里以 MD5 形式。提交后 new_password 字段不会回填表单(password 类型字段默认行为)。

附带修复

  1. strings.json 补齐 config.error.rk001_rate_limit:原代码 async_step_user 里用到但未定义,UI 会显示原始字符串
  2. 修复 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 — 密码登录日额度已用完

使用方法

  1. 覆盖安装 custom_components/state_grid/ 后重启 HA
  2. 进入 设置 → 设备与服务 → 国家电网 → 配置
  3. 滚动到底部,会看到新字段「新密码(留空不修改;填写后会触发一次登录验证)」
  4. 填入国网新密码 → 提交
  5. 后台会调一次 password_login 验证:
    • 成功 → 表单关闭,新密码已写入 Store,下次轮询自动用新密码
    • 失败 → 表单回弹并显示错误(旧密码不变)
    • RK001 冷却期 → 提示"明日0点后重试"
    • 手机号 RK001 且配了邮箱 → 自动邮箱降级验证

注意事项

  • 验证过程会真实调用 LLM 解验证码(消耗少量 token)和一次 95598 登录接口(消耗一次日额度)
  • 若集成已处于 RK001 冷却期,需等到次日 0 点(北京时间)后再来修改密码