Releases: windyboy/china_southern_power_grid_stat
Releases · windyboy/china_southern_power_grid_stat
Release list
v1.3.2
简化
保持功能不变的结构清理,无对外行为变化。
- 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
修复
修复安装后 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)
- coordinator 轮询(
- 测试 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
变更
本版本基于 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_codekey;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