Commit Graph
3 Commits
Author SHA1 Message Date
claude-botandClaude Opus 4.8 1c333826ff fix(power-flow): dead sensors, balance-based Home total, dedup history
- Server node: sensor.keller_server_power is dead (UPS retired) -> Wave PM
  Mini server outlet (kg_vorratskeller_wave_pm_mini_server_steckdose)
- Garden node: sensor.eg_garten_teichpumpe_power_2 is dead ->
  sensor.shelly_teichpumpe_power_0 (live, peaks ~77 W)
- Home node/series: floor sums only cover submetered circuits (702 W shown
  vs ~1.1 kW real); Home is now the meter balance PV + Grid + Battery, with
  a new grey 'Rest' node for the non-submetered remainder
- Flow lines: Heat Pump is metered inside Keller (was drawn from EG);
  Garden is on floor Aussenbereich, in no floor sum (was drawn from OG)
- Drop redundant batteryIn target (derived from the signed battery sensor);
  update stale comments from the retired *_absolute sensors
- History: max by (entity) guards against duplicate-scrape residue that
  doubled the summed Home series; sign hints in Battery/Grid legends;
  grid query pinned to entity id instead of friendly_name

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 00:33:05 +02:00
claude-botandClaude Opus 4.8 2a2a5d9a0b fix(dashboards): repoint power-flow + pv-system-roi to open3e entities
The 2026-07 ViCare->open3e/MQTT migration renamed the Vitocharge PV/battery entities (e3_vitocharge_03_* -> vitocharge_vx3_vx3_*) and changed some units. Both dashboards still queried the retired entities and showed No data.

power-flow (Prometheus, real-time): solar_power->pv_power, battery SoC->battery_soc; the two absolute battery-power sensors are replaced by a single signed battery_power (open3e: positive=discharge, negative=charge), so charge/discharge derive from its sign.

pv-system-roi (InfluxDB): repoint every query; fix units (PV/battery energy now Wh not kWh -> /1000; grid energy now kWh not Wh); grid power sign unchanged (negative=export). Timeseries panels UNION pre-migration e3_* with post-migration series (unit-normalized) so history back to 2023 stays unbroken. Reserved Energy recomputed as capacity x backup_discharge_limit. strompreis + the two input_number config entities survived and are kept.

Validated live via Grafana Explore: signed-battery charge/discharge union, unit normalization, pivot/value patterns (reused from merged heatpump-roi fix #271).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QiLCinB7NLp7YdCjGYzvfh
2026-07-16 22:22:26 +02:00
k.rennerandClaude Opus 4.7 dd9be017cb feat(monitoring): port 27 legacy Grafana dashboards to K8s sidecar
Copies every dashboard from `ansible/roles/grafana-observability/files/dashboards/`
into `kubernetes/apps/monitoring/dashboards/` and wires each as a
ConfigMap for the kube-prometheus-stack Grafana sidecar. UID rewrites
follow the buckets in DASHBOARD-MIGRATION.md:

- 11 k8s-native dashboards copied with no rewrite (UID stays
  `prometheus`/`loki`/`influxdb`).
- 9 host-legacy + 3 mixed-resolved-as-legacy (blackbox, infrastructure,
  synology-nas Prom panels) had every `"uid": "prometheus"` rewritten to
  `"uid": "prometheus-legacy"` so they continue to render against LXC 227
  until the global cut-over retires VM 109.
- log-explorer and netbird-overview are pure Loki, no rewrite.
- paperless-overview and unifi-overview kept on `prometheus` (paperless
  per k8s-native intent; unifi because the K8s Prom also scrapes the same
  unpoller exporter).

Validated with `kubectl kustomize kubernetes/apps/monitoring`: 27
ConfigMaps generated, all carrying the `grafana_dashboard: "1"` label
that the sidecar watches in the `monitoring` namespace.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 16:50:13 +02:00