VPS-90: hass 预测电费 Block D 并入 Block C,修 Core 重启后 unknown
csg_predicted_cost_ladder 唯一触发源 csg_predicted_usage 的首次渲染事件 先于其触发器挂载,homeassistant start 触发器在 running 后 attach 不再 触发,重启后该实体直到下一次上游轮询/00:05 都不渲染。并入 Block C 同批 渲染消除竞态;调价改 Block B + Block C 两处 variables(文件不再有 D)。 重启后 15 个 csg_* 全部数值(158.98 元,与手算一致),备份 csg_sensors.yaml.bak-20260923-pre-blockd-merge;Plane VPS-90 已记录。
This commit is contained in:
@@ -414,6 +414,33 @@ live state 完全一致(`csg_30d_avg` 9.07 / `csg_predicted_usage` 268.45 /
|
||||
(`states_raw` 08:17:04Z 158.54 → 08:17:10Z 157.19)。**注意**:`w` 的爬升窗口
|
||||
(14 天)是回测选出来的单月参数,属弱证据,换季/换季后值得复看。
|
||||
|
||||
**`csg_sensors.yaml` 预测电费 Block D 并入 Block C(2026-09-24,修重启后 unknown):**
|
||||
症状:`dashboard-unknown/power-monitor` 的「预计本月电费(估算)」=
|
||||
`sensor.csg_predicted_cost_ladder` 在 2026-09-23 22:09 CST Core 重启(2026.9.3)后卡
|
||||
`unknown`,其余 14 个 `csg_*` 正常;同一 state 模板经 REST `/api/template` 手动渲染出
|
||||
158.98,计算本身无错。根因是**启动渲染竞态**:Block D 唯一的动态触发源是
|
||||
`csg_predicted_usage` 的 state 变化,而该实体由 Block C 在启动时渲染出首次值
|
||||
(unknown→269.14),这次变化先于 Block D 触发器挂载约 25 ms,被错过;
|
||||
`homeassistant start` 触发器在 HA 已进入 running 后才 attach 就不再触发
|
||||
(`helpers/triggers/homeassistant.py` 源码注释明示),于是重启后 Block D 不再渲染,
|
||||
直到下一次上游轮询或 00:05 time_pattern。修复:删 Block D,
|
||||
`csg_predicted_cost_ladder` 定义原样并入 Block C 的 `sensor:` 列表末尾
|
||||
(`csg_prediction_progress` 同款位置——同一 coordinator 批次渲染、列于
|
||||
`csg_predicted_usage` 之后,读到的必是新值),阶梯常量 `variables:` 随之补进
|
||||
Block C。**文件里不再有 Block D**:调价改 Block B 与 Block C 两处 variables
|
||||
(上文 W1N-239 段落里 "Block B + Block D" 的说法已过时)。实体/unique_id 不变,
|
||||
面板 22 个实体引用无需改。备份
|
||||
`/homeassistant/.csg-backups/csg_sensors.yaml.bak-20260923-pre-blockd-merge`
|
||||
(改前 live SHA-256
|
||||
`86c7187168c293548059518bfd6d0f32bd05287b48c79046994728c49bc84341`)。
|
||||
验证(2026-09-24 07:05 CST,重启后未经上游轮询):`ha core check` OK;Core 重启
|
||||
约 90 s;15 个 `csg_*` 全部数值——`csg_predicted_cost_ladder` 158.98 元
|
||||
(= 269.14 kWh 阶梯递进手算一致;269.14 / 73.3% / 116.25 / -20.3 / 198.65 与改前
|
||||
一致);Core 日志仅剩已知的 CSG 营销系统 `get_month_daily_cost_detail` 上游错误,
|
||||
无模板错误。诊断路径备注:trigger 模板实体 unknown(而非 unavailable)=
|
||||
state 模板渲染异常或**从未渲染**;后者查实体 `last_changed` 是否等于重启时刻、
|
||||
再对照同块兄弟实体的渲染时刻即可锁定挂载竞态。
|
||||
|
||||
> **季节 gauge:** 不要手改 max/segments。`binary_sensor.csg_summer_tariff`
|
||||
> (`on` = 5–10 月)切换夏季 `650 / 260 / 600` 与冬季 `450 / 200 / 400`,
|
||||
> 见上方 VPS-90 v4。`automation.csg_mian_ban_qie_dong_ji_dang_ti_xing`(10-25)
|
||||
|
||||
Reference in New Issue
Block a user