gpt5.5 - odladeni dokumentace dle kodu
Some checks failed
CI and deploy / migration-check (pull_request) Failing after 27s
CI and deploy / deploy (pull_request) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-05-02 19:17:04 +02:00
parent 3595b24f3b
commit 02f0ab66e4
9 changed files with 161 additions and 114 deletions

View File

@@ -22,6 +22,8 @@ CREATE TABLE site (
code TEXT UNIQUE NOT NULL, -- např. 'home-01'
name TEXT NOT NULL,
timezone TEXT NOT NULL DEFAULT 'Europe/Prague',
latitude NUMERIC(9,6), -- Open-Meteo / pvlib
longitude NUMERIC(9,6), -- Open-Meteo / pvlib
active BOOLEAN NOT NULL DEFAULT true,
notes TEXT,
created_at TIMESTAMPTZ DEFAULT now()
@@ -39,6 +41,7 @@ CREATE TABLE site_endpoint (
host TEXT NOT NULL,
port INT,
protocol TEXT, -- 'modbus_tcp', 'http', 'https'
unit_id INT, -- Modbus Unit ID pro modbus_tcp
auth_reference TEXT, -- odkaz na secret / env proměnnou
enabled BOOLEAN DEFAULT true,
notes TEXT
@@ -119,6 +122,11 @@ CREATE TABLE asset_battery (
charge_efficiency NUMERIC(5,4) DEFAULT 0.95,
discharge_efficiency NUMERIC(5,4) DEFAULT 0.95,
degradation_cost_czk_kwh NUMERIC(8,4) DEFAULT 0.5 -- náklad na cyklus
-- pozdější migrace přidávají plánovací tunables:
-- charge_slot_buffer, discharge_slot_buffer,
-- planner_max_soc_percent, planner_discharge_floor_percent,
-- planner_extreme_buy_threshold_czk_kwh,
-- planner_terminal_soc_value_factor
);
```
@@ -135,7 +143,7 @@ CREATE TABLE asset_pv_array (
code TEXT NOT NULL,
name TEXT,
nominal_power_wp INT NOT NULL, -- 10000
azimuth_deg NUMERIC(6,2), -- 0=S, 90=Z, -90=V
azimuth_deg NUMERIC(6,2), -- kompasově/pvlib: 0=N, 90=E, 180=S, 270=W
tilt_deg NUMERIC(5,2),
module_count INT,
shading_factor NUMERIC(4,3) DEFAULT 1.0,
@@ -169,22 +177,30 @@ CREATE TABLE asset_ev_charger (
);
```
### `asset_flexible_device`
Generická tabulka pro ostatní flexibilní spotřebiče (TUV, tepelné čerpadlo, ...).
### `asset_heat_pump`
Tepelné čerpadlo / TUV. Aktuální implementace má samostatnou tabulku místo
historického generického `asset_flexible_device`.
```sql
CREATE TABLE asset_flexible_device (
id SERIAL PRIMARY KEY,
site_id INT REFERENCES site(id),
code TEXT NOT NULL,
device_type TEXT NOT NULL, -- 'tuv', 'heat_pump', 'pool', ...
control_mode TEXT DEFAULT 'loxone', -- jak se řídí
max_power_w INT,
min_power_w INT DEFAULT 0,
interruptible BOOLEAN DEFAULT true,
schedulable BOOLEAN DEFAULT true,
priority INT DEFAULT 50, -- 0=nejvyšší priorita
notes TEXT
CREATE TABLE asset_heat_pump (
id SERIAL PRIMARY KEY,
site_id INT REFERENCES site(id),
code TEXT NOT NULL,
manufacturer TEXT,
model TEXT,
endpoint_id INT REFERENCES site_endpoint(id),
rated_heating_power_w INT NOT NULL,
cop_rated NUMERIC(4,2),
cop_temp_reference_c NUMERIC(5,2),
min_run_duration_min INT NOT NULL DEFAULT 30,
min_stop_duration_min INT NOT NULL DEFAULT 15,
tuv_tank_volume_l INT,
tuv_min_temp_c NUMERIC(5,2) NOT NULL DEFAULT 45,
tuv_max_temp_c NUMERIC(5,2) NOT NULL DEFAULT 60,
tuv_target_temp_c NUMERIC(5,2) NOT NULL DEFAULT 55,
tuv_temp_sensor_ref TEXT,
schedulable BOOLEAN NOT NULL DEFAULT true,
notes TEXT
);
```
@@ -424,7 +440,9 @@ CREATE TABLE consumption_baseline_interval (
```
### Flexibilní spotřebiče
Flexibilní spotřeba se neukládá souhrnně odvozuje se ze součtu `telemetry_ev_charger` + stavů `asset_flexible_device` per interval. Plánovaná flexibilní spotřeba je součástí `planning_interval`.
Flexibilní spotřeba se neukládá souhrnně odvozuje se ze součtu
`telemetry_ev_charger` + `telemetry_heat_pump` / plánovaných setpointů.
Plánovaná flexibilní spotřeba je součástí `planning_interval`.
---