Skip to content

Releases: windyboy/china_southern_power_grid_stat

v1.3.2

Choose a tag to compare

@windyboy windyboy released this 15 Aug 01:25
934f58c

简化

保持功能不变的结构清理,无对外行为变化。

  • Coordinator 今年/去年、本月/上月抓取去重,删除过时 TaskGroup 注释
  • 16 个传感器改为声明表,unique_id / device identifier 不变
  • Config flow 登录表单校验文案抽成公共助手
  • 删除 3 个未使用 raw API;csg_client 改为显式 const 导入
  • CLAUDE.md 对齐可配置 auto / IPv4 / IPv6(默认 auto)
  • 版本号 1.3.1 → 1.3.2

未改动

5 种登录路径、16 个 suffix、刷新窗口、API 请求形状、QR HTML 说明、csg_client_demo.py、翻译文件。

CI 全绿:hassfest、HACS、Tests(HA 2023.11.3 / Python 3.11 与 HA 2026.8.1 / Python 3.14)。

最低要求

  • Home Assistant >= 2023.11

v1.3.1

Choose a tag to compare

@windyboy windyboy released this 14 Aug 14:03

修复

修复安装后 coordinator 崩溃的问题:TypeError: cannot pickle 'mappingproxy' object,导致全部传感器报 coordinator has no data。

根因

Home Assistant 的 ConfigEntry.data / .options 是只读的 MappingProxyType,copy.deepcopy() 无法处理它。上一版(1.3.0)在 5 处对 entry 数据直接 deepcopy,首次轮询即崩溃。

改动

  • 5 处 copy.deepcopy(<entry data>) 改为 copy.deepcopy(dict(<entry data>)):
    • coordinator 轮询(sensor.py)
    • reauth(config_flow.py)
    • 添加缴费号(config_flow.py)
    • 遗留密码清理(__init__.py)
    • 删除设备(__init__.py)
  • 测试 fixture 改用 MappingProxyType 模拟 HA 真实数据形态,并新增 2 个回归测试(红/绿验证,能复现此 bug)。
  • 版本号 1.3.0 → 1.3.1。

CI 全绿:hassfest、HACS、Tests(HA 2023.11.3 / Python 3.11 与 HA 2026.8.1 / Python 3.14)。

最低要求

  • Home Assistant >= 2023.11

v1.3.0

Choose a tag to compare

@windyboy windyboy released this 14 Aug 13:13
69f13c9

变更

本版本基于 CubicPill/china_southern_power_grid_stat fork,修复并增强以下内容。

网络与超时

  • CSG 客户端从阻塞式 requests 迁移到 HA 管理的 aiohttp(原生异步、仅 IPv4 默认、有界超时)
  • 新增地址族选项:仅 IPv4(默认)/ 自动 / 仅 IPv6,首次 Add Entry 即可选择
  • 修复无 HTTP timeout 阻塞 HA executor 的问题

登录与配置流程

  • QR 登录过期(sta=00010001)单独处理,不再走通用错误
  • 修复 Reauth 被 unique_id 中断、过期登录无法写回 token
  • 修正翻译 API 参数顺序、sms_code key;Options 登录过期不再抛 AuthFailed
  • QR 网络错误不再中断配置向导

稳定性

  • 响应缺字段/空列表不再 TypeError/IndexError(防御性解析)
  • AES padding 改为字节对齐(UTF-8 多字节正确)
  • 删除 this_month Event,避免 last_month 永久卡死
  • 修复多账户 metering_point_number 无法回填
  • 工商/政企绑定无计量点(00060005)时不再导致整表失败
  • Coordinator 规范 reload/listener,配置变更可靠生效
  • 删设备按 unique_id 精确匹配;设备 identifiers 纳入 entry_id

传感器语义

  • device_class / state_class 按实体语义逐项配置,避免污染长期统计

隐私与归属

  • debug 日志不再输出完整 JSON(含住址/余额 PII)
  • README/manifest/codeowners 归属从 CubicPill 更正为 windyboy

工程化

  • 新增 pytest 测试基线,覆盖 HA 2023.11.3 (Python 3.11) 与 HA 2026.8.1 (Python 3.14)
  • CI 固定 hacs/hassfest action 版本、checkout v4

最低要求

  • Home Assistant >= 2023.11