Commit Graph
28 Commits
Author SHA1 Message Date
rootandClaude Opus 5.5 cbf507fa18 feat: heat pump statistics per day in the Historia tab
CI / Check (gateway, backend, frontend) (push) Successful in 1m24s
GET /api/stats?range=7d|30d computes compressor, CWU, CO and heater hours,
compressor starts and temperatures per Europe/Warsaw day from the raw
heat_pump polls. Hours hold each poll for at most 600 s so gaps add nothing;
starts are 0 -> >0 transitions and are a lower bound at 300 s polling.
Historia gets a Wykresy | Statystyki switch (shared SubView helper, also
used by Energia) with totals tiles, a daily chart and a cycling hint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 16:59:42 +02:00
rootandClaude Opus 5.5 e5e13cedb5 docs: ADR-013 battery settings from the app, spec F8, register notes
CI / Check (gateway, backend, frontend) (push) Successful in 1m27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 15:51:47 +02:00
rootandClaude Opus 5.5 a01c507a6e feat(gateway): read the Deye battery settings into electricity.deye_settings
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 14:49:38 +02:00
rootandClaude Opus 5.5 8146296061 feat(backend): serve the Raspberry Pi BME280 reading at /api/pi-sensor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 14:07:37 +02:00
rootandClaude Opus 5.5 355dd76555 feat(backend): let a preset take the user's own values
POST /api/presets/{id} accepts optional values per setpoint of the preset,
checked against the gateway's limits before anything is sent, so Wyjazd
can use temperatures other than the defaults.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:54:45 +02:00
rootandClaude Opus 5.5 7e50d1203b feat(gateway): show the verified value and restore a setpoint on request
GET /commands showed the last poll for up to 5 minutes after a write.
It now shows the value read back after our own write or restore when
that is newer than the poll. POST /commands/restore runs a pending
restore at once through the normal path (conflict check, read-back,
audit with the requester, rate limit).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:34:34 +02:00
rootandClaude Opus 5.5 b3038aeef7 feat(gateway): hold a lowering change until a chosen end without renewals
A command may carry "until" (ISO-8601 with offset). The change is stored
as a restore with leaseUntil = due = until, so it survives a restart and
runs at its end. Held changes must lower the value below both the current
value and the original, end in the future and within 30 days; otherwise
they are rejected without a write. Renewals now only extend a lease.
ADR-012 amends ADR-011 for held changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 13:22:02 +02:00
root 604ef4e6d9 Merge PR #71: feat(energy): device details panels for Deye, Fronius and the house meter
CI / Check (gateway, backend, frontend) (push) Successful in 1m15s
2026-10-24 12:50:10 +02:00
root bad67b9538 Merge PR #72: feat(commands): setpoint changes are leases the backend renews 2026-10-24 12:46:08 +02:00
rootandClaude Opus 5.5 ba8631b3c2 docs: ADR-011 setpoint leases, spec F3 limits decided, roadmap M4
CI / Check (gateway, backend, frontend) (push) Successful in 1m15s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:40:36 +02:00
rootandClaude Opus 5.5 35b3f8e1e0 feat(web): open device details from the energy screen
CI / Check (gateway, backend, frontend) (push) Successful in 1m17s
A "Urządzenia" card lists the Deye, Fronius and house meter as rows with
a "Szczegóły ›" chevron, 56 px high. Tapping one opens a bottom sheet on
a phone (a dialog on wide screens) with the grouped values; it closes by
button, backdrop or Escape and returns focus to the row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:38:45 +02:00
rootandClaude Opus 5.5 9f33f5a94c feat(meter): write per-phase energy counters as house_meter_phases
CI / Check (gateway, backend, frontend) (push) Successful in 1m17s
One extra FC4 request per poll; PRAD2 is unchanged and still written when
the extra request fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 12:36:22 +02:00
rootandClaude Opus 5.5 0286c4c18d docs: BME280 moves into the gateway too; Pi OS stays as is
CI / Backend tests (Maven / Java 21) (push) Successful in 43s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U8EHjVrf5ffw1Vjn5bPGJu
2026-10-23 23:21:25 +02:00
rootandClaude Opus 5.5 656b581812 docs: gateway collects all devices into Influx; first result is our own UI
CI / Backend tests (Maven / Java 21) (push) Successful in 41s
- ADR-006: gateway writes readings to InfluxDB with a buffer; backend reads them
- S6: commands only from the backend (token and firewall)
- M1 gateway reads heat pump, Deye, Fronius and the house meter (moved from
  rpi-measurements); D7 subnet fix first
- M3 read-only backend and web UI with pump and energy; Grafana step dropped

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U8EHjVrf5ffw1Vjn5bPGJu
2026-10-23 23:18:31 +02:00
rootandClaude Opus 5.5 162a25eceb docs: ADR-006 thin gateway on the Pi, backend in Kraków; energy earlier
CI / Backend tests (Maven / Java 21) (push) Successful in 44s
- ADR-006 supersedes ADR-002: the Pi gateway owns device links, checks commands
  and runs timed restores; the backend runs in Docker in Kraków
- restore value is read from the controller before the first write
- roadmap: energy view moves to M4 (my father wants it), setpoints to M5

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U8EHjVrf5ffw1Vjn5bPGJu
2026-10-23 23:11:05 +02:00
rootandClaude Opus 5.5 365d0b124a docs: consolidate goal and scope, move controller knowledge, add storage ADR
CI / Backend tests (Maven / Java 21) (push) Successful in 41s
- spec: goal covers heat pump first, energy second; explicit in/out scope
- docs/frisko/rx910-se21.md: controller facts moved out of the roadmap
- roadmap: M6 energy, M7 native decision, C6 energy feasibility done
- ADR-005: InfluxDB plus one local file, no other database

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U8EHjVrf5ffw1Vjn5bPGJu
2026-10-23 22:49:47 +02:00
rootandClaude Opus 5.5 1676b46b33 docs: identify the Deye hybrid inverter
CI / Backend tests (Maven / Java 21) (push) Successful in 42s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U8EHjVrf5ffw1Vjn5bPGJu
2026-10-23 22:20:34 +02:00
rootandClaude Opus 5.5 9f795485ee docs: energy sources in Krosno (meter, Fronius, second inverter)
CI / Backend tests (Maven / Java 21) (push) Successful in 42s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 22:12:58 +02:00
rootandClaude Opus 5.5 a59a5494ff docs: user-chosen boost duration; CWU limit 50 °C
CI / Backend tests (Maven / Java 21) (push) Successful in 42s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:50:11 +02:00
rootandClaude Opus 5.5 7bbda72e59 docs: free setpoint choice within limits plus presets
CI / Backend tests (Maven / Java 21) (push) Successful in 40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:47:44 +02:00
rootandClaude Opus 5.5 26f7b30abe docs: live pump state as part of F1 and M1
CI / Backend tests (Maven / Java 21) (push) Successful in 42s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:47:11 +02:00
rootandClaude Opus 5.5 13bc0955f0 docs: limit first commands to four setpoints (boost, away)
CI / Backend tests (Maven / Java 21) (push) Successful in 40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:45:36 +02:00
rootandClaude Opus 5.5 d230d86250 docs: boost via economy temperature as the first command
CI / Backend tests (Maven / Java 21) (push) Successful in 40s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:39:52 +02:00
rootandClaude Opus 5.5 484186e2dc docs: solar collector and observed CWU heating pattern
CI / Backend tests (Maven / Java 21) (push) Successful in 39s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:34:19 +02:00
rootandClaude Opus 5.5 fe8257b96c docs: first command is a hot-water (CWU) override
CI / Backend tests (Maven / Java 21) (push) Successful in 41s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:32:42 +02:00
rootandClaude Opus 5.5 2544421c72 docs: schedule override as first command; weekly program selector
CI / Backend tests (Maven / Java 21) (push) Successful in 43s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:30:08 +02:00
rootandClaude Opus 5.5 17d326fd5f docs: record MK01 single-client gateway and feasibility checks
CI / Backend tests (Maven / Java 21) (push) Successful in 42s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:27:26 +02:00
rootandClaude Opus 5.5 c309916736 docs: add specification, repository rules and Frisko sources
CI / Backend tests (Maven / Java 21) (push) Successful in 41s
Restart from the version running on the Pi (e345063) with written goals and rules:
- docs/spec.md: goal, principles, architecture, requirements
- docs/roadmap.md: bottom-up milestones M0-M6, baseline defects, controller facts
- docs/decisions/: ADR-001..004 (evolve baseline, backend on Pi, single Modbus
  owner, web UI first)
- CONTRIBUTING.md and CLAUDE.md: workflow, safety and context-size rules
- research/frisko/: RX910-SE21 register map, phone-app XML maps and APK,
  MR208-PC+ reference docs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 21:13:05 +02:00