Dusan Vojacek
d63a85a2ea
TČ Samsung přes MIM-B19N: endpoint 172.16.1.17, plný poll, registry doc
...
CI and deploy / migration-check (push) Failing after 7m29s
CI and deploy / deploy (push) Has been skipped
- V096: endpoint home-01 TČ z placeholderu 192.168.1.103 na reálný Waveshare
RS485 TO POE ETH (B) 172.16.1.17:502; telemetry_heat_pump.room_temp_c.
- R__048: fn_telemetry_heat_pump_sample rozšířena (water_inlet, room_temp,
defrost, alarm_code) — drop/comment bez parametrů dle konvence.
- poll_heat_pump: místo TODO stubu (zapisoval dummy 45/55 °C!) skutečné čtení
MIM bloku 50-75 + defrost reg 2; gate na comm_status ready (jinak skip);
operating_mode off/heat/cool/auto/dhw/error; power_w NULL (MIM příkon nemá).
- docs/04-modules/modbus-registers-mim-b19n.md (mapa, 9600 8E1, DIP adresa,
troubleshooting E6xx) + heat-pump.md odkaz.
Živý stav: TCP :502 OK, Modbus bez odpovědi (čeká na protokol převodníku /
paritu EVEN / polaritu A-B — checklist v docu).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 18:24:10 +02:00
Dusan Vojacek
2122fa2035
Tesla presence watcher: geofence, ev_presence_obs, 'píchni auto' pobídka
...
CI and deploy / migration-check (push) Successful in 47s
CI and deploy / deploy (push) Has been skipped
- V095 ems.ev_presence_obs (state/at_home/distance/charging/shift per ~5 min)
- tesla_client: get_vehicle_api_state (jen /vehicles — nebudí), haversine_m
- collector poll_tesla_presence: online → poloha → geofence 150 m vs GPS site;
přechod pryč→doma + Disconnected → Discord pobídka s aktuálním přebytkem
(cooldown 2 h); vše logováno pro budoucí dostupnostní statistiku
- 6 testů (haversine, přechody); docs: zákopy reauth procesu (6 bodů)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 14:14:48 +02:00
Dusan Vojacek
5ae6b609cc
FIX V093: asset_vehicle nemá sloupec notes — migrace failovala a blokovala
...
CI and deploy / migration-check (push) Successful in 17s
CI and deploy / deploy (push) Has been skipped
všechny deploye od ~13:40 (R__082 OTE fix, V094, bot fallback ve frontě).
V093 nebyla aplikována (transakční rollback) — úprava failed migrace je
legitimní (immutability platí pro APLIKOVANÉ); na serveru nutný jednorázový
'flyway repair' (smaže failed záznam z historie).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 13:48:12 +02:00
Dusan Vojacek
85dff7f13e
v2: měkký EV cíl — oportunistické nabíjení nad target (+ strop energie)
...
CI and deploy / migration-check (push) Successful in 44s
CI and deploy / deploy (push) Has been skipped
Uživatel: 'potřebuju do X % (tvrdý), ale klidně dobij na 100 % když je to
skoro zadarmo; při záporných cenách radši do auta než nechat na střeše'.
- V094 asset_vehicle.opportunistic_value_czk_kwh (default 1.0; = hodnota
ušetřeného BUDOUCÍHO nabíjení — auto neumí zpět, žádný noční prodej)
- R__039 ev_sessions: + headroom_wh ((100−target) % kapacity) + opp value;
session se nenuluje po dosažení targetu, dokud má headroom
- solver_v2: dekompozice Σ(EV) == needed − unmet + opp, opp ∈ [0, headroom],
odměna opp×value; zároveň FIX latentního bugu — při buy<0 chyběl strop
celkové energie do auta (model mohl pumpovat bez limitu)
- 3 testy (neg ceny sají nad target po strop; běžné ceny ne; cap při opp=0);
eval fixtures beze změny (sessions null)
Víkend (pátek nízký tvrdý cíl + víkendová negativa → samo doplní do 100 %)
vyplývá z mechanismu, žádná speciální logika.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 12:17:59 +02:00
Dusan Vojacek
2325bbcbd6
Tesla LFP: kapacita 62.5 kWh (bylo 75 = LR) + default cíl 100 %
...
CI and deploy / migration-check (push) Successful in 29s
CI and deploy / deploy (push) Has been skipped
Model Y 2025 Standard RWD s LFP: menší pack, ale pravidelné 100 % je žádoucí
(balancování). Kapacita vstupuje do energy_needed a EV usage statistik.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 12:10:45 +02:00
Dusan Vojacek
15d47e8a80
Bazén: sezóna (schedulable), filtrace dle teploty vody, Loxone čidla
...
CI and deploy / migration-check (push) Successful in 42s
CI and deploy / deploy (push) Has been skipped
- V092: ems.loxone_sensor + telemetry_loxone_sensor (hypertable) — generické
čtení Loxone hodnot (poslouží i ohřevu/akumulačce); pool sloupce teplotní
funkce (ref/base/per_c/min/max) + water_temp_sensor_id
- R__098 fn_pool_daily_runtime_min: clamp(base+per_c×(t−ref)) z poslední
teploty <24 h, fallback daily_runtime_min; JSON detail pro UI/solver
- collector poll_loxone_sensors: /jdev/sps/io/<name>/state, LL.value parse,
no-op bez čidel
- sezóna = schedulable přepínač (dokumentováno vč. SQL); hranice filtrace ×
ohřev TČ (oddělené logiky, sdílí jen čidlo)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 11:47:03 +02:00
Dusan Vojacek
e0410f9638
v2: denní SoC bezpečnostní rampa — ráno dotáhnout rezervu, pak prodávat
...
CI and deploy / migration-check (push) Successful in 30s
CI and deploy / deploy (push) Successful in 1m32s
KV1 pozorování uživatele: ráno baterie na 11 % (min 10), prodává se do sítě
— nenadálý odběr/mrak by se kupoval za fixních 6.35. v1 mělo denní rampu
(safety_soc_target_wh z R__063: reserve 30 % ráno → reserve+noc večer,
6-19 h, flag planner_daytime_charge_target_enabled) — v2 ji ignoroval.
Mechanismus (vzor nočního polštáře): deficit pod rampou platí za KAŽDÝ slot
nájem buy×faktor (V091 asset_battery.planner_safety_soc_risk_factor,
default 0.05; 0=vypnuto) → ráno se nejdřív doplní rezerva (4 h deficitu
1 kWh při buy 6.35 ≈ 5.1 Kč > sell ~2.5), extrémní sell špička smí deficit
racionálně podstoupit. R__039 + db_io + 2 testy (KV1 scénář, spike).
Eval fixtures beze změny (sloupec v context_json fixtures není → 0);
živá produkce dostane faktor přes fn_planning_site_context.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 10:17:19 +02:00
Dusan Vojacek
2932d48080
v2: PV-risk front-load — nabít v neg okně co nejdřív (nejistota predikce)
...
CI and deploy / migration-check (push) Successful in 29s
CI and deploy / deploy (push) Successful in 1m0s
v1 to řešil rampou (plný výkon než se řeže pole A — zelený bonus B, riziko
večerního mraku). v2 byl k načasování v okně sell<0 indiferentní (PV zdarma
kdykoliv) a směl nabíjení odložit — odklad ale spoléhá na predikci.
Mechanismus: malá prémie za držení energie dřív (objective −= soc[t] ×
frontload v neg slotech). Rozbíjí indiferenci směrem k front-loadu, nikdy
nepřebije skutečné ceny. Velikost z DB: asset_battery.
planner_pv_risk_frontload_czk_kwh (V090, default 0.01; 0 = vypnuto),
přes fn_planning_site_context (R__039). Test: 4 sloty plným tempem od startu.
Eval fixtures beze změny (sloupec v nich není → 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 09:55:22 +02:00
Dusan Vojacek
4095f0f912
EV spotřební forecast: týdenní rytmus vozidla → target SoC a deadline session
...
CI and deploy / migration-check (push) Successful in 19s
CI and deploy / deploy (push) Successful in 56s
Myšlenka uživatele: pondělní služebka ~150 km (~35 kWh) chce skoro plnou,
konec týdne stačí míň, víkend = levné sloty na přípravu pondělka.
- V089: ev_vehicle_obs (odometer+SoC při příjezdu/ODJEZDU — auto v obou
okamžicích vzhůru, žádné buzení navíc), ev_trip (km z odometru, kWh z ΔSoC;
nabíjení cestou → charged_away flag), ev_usage_stats per (vozidlo, DOW);
asset_vehicle: target_soc_forecast_enabled (default false), min_target_soc_pct
- R__096: fn_ev_build_trips (párování), fn_update_ev_usage_stats (job 00:50),
fn_ev_next_departure (příští typický odjezd, >=4 vzorky, >=3 km),
fn_ev_required_soc (P80 spotřeby dne + 10 p.b., clamp [min_target, 100])
- R__016: session při příjezdu bere forecast target+deadline (za per-vozidlo
flagem, fallback defaulty, ruční patch vždy vyhrává) → víkendová session
s pondělním deadline = v2 solver přirozeně nabije v levných slotech
- tesla_client: + vehicle_state endpoint (odometer v MÍLÍCH → km), collector:
departure hook, lifespan: job 00:50
Aktivace po nasbírání dat: update asset_vehicle set target_soc_forecast_enabled=true.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 09:06:10 +02:00
Dusan Vojacek
466c15fa84
Bazén: V085→V087 (out-of-order po V086) + seed Shelly Plug S Gen3 home-01
...
CI and deploy / migration-check (push) Successful in 16s
CI and deploy / deploy (push) Successful in 1m14s
V088: endpoint shelly_http 172.16.1.15 + asset pool-pump-1 (rated 600 W odhad
— upřesní telemetrie; 480 min/den letní filtrace; schedulable=false =
telemetry-only start, ovládání signálem POOL_PUMP_ON po ověření).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 00:14:15 +02:00
Dusan Vojacek
02c35f8add
Merge: bazénové čerpadlo přes Shelly (telemetrie + signal ovládání)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 00:12:43 +02:00
Dusan Vojacek
60176fc7b2
Tesla Fleet API: čtení SoC po příjezdu k wallboxu
...
CI and deploy / deploy (push) Successful in 58s
CI and deploy / migration-check (push) Successful in 16s
- services/tesla_client.py: access token s cache + ROTACE refresh tokenu do
ems.tesla_token (env jen seed — Tesla refresh token je jednorázový),
vehicles → vehicle_data?endpoints=charge_state, 408 (spící auto) = tiché
přeskočení, výběr vozidla dle VIN / jediného na účtu (VIN se auto-naučí)
- hook _patch_session_from_tesla v _on_ev_arrival: PŘED replanem doplní
soc_at_connect_pct (+ target z charge_limit_soc) do otevřené session přes
fn_ev_session_apply_patch (rozšířena o soc_at_connect_pct) — energii si
odvodí fn_planning_site_context (SQL-first); selhání neblokuje replan
- V086: asset_vehicle.vin, api_type='tesla' pro tesla-my (Model Y, home-01),
singleton ems.tesla_token; R__095: fn_tesla_token_get/upsert,
fn_tesla_arrival_context, fn_vehicle_set_vin
- config: TESLA_CLIENT_ID/SECRET/REFRESH_TOKEN (prázdné = vypnuto)
- testy parserů; plná sada beze změny
Aktivace: env do /opt/ems-deploy/.env + recreate backendu (docs/tesla-fleet-api.md §Stav).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 23:29:24 +02:00
Dusan Vojacek
ccdca068a1
DB: bazénové čerpadlo přes Shelly relé (V085)
...
- ems.asset_pool_pump (endpoint http, rated_power_w, min_run_min,
daily_runtime_min jako aktuální sezónní hodnota, schedulable)
- ems.telemetry_pool_pump — 1min hypertable (is_on, power_w, energy_wh_total)
- signal_def POOL_PUMP_ON (bool) pro ovládání přes signal infrastrukturu
- fn_telemetry_pool_pump_sample (R__092), vw_asset_pool_pump_http_poll (R__093)
- fn_signal_enqueue_bool (R__094) — SQL-first zařazení bool signálu do fronty
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:37:42 +02:00
Dusan Vojacek
2a963c9793
Branch 1: failed run journal + bisect Infeasible + granulární relaxace (bez vypnutí evening push)
CI and deploy / migration-check (push) Failing after 14s
CI and deploy / deploy (push) Has been skipped
2026-06-06 22:23:59 +02:00
Dusan Vojacek
91a9bef3d7
implementace co nejdrive dosazeni SOC na home-01 a umozneni plneho socu n slotu ped koncem sell < 0
CI and deploy / migration-check (push) Failing after 13s
CI and deploy / deploy (push) Has been skipped
2026-05-26 08:07:00 +02:00
Dusan Vojacek
c6074e9c74
nastavitelny max sollar dle stridace (ulozeno v DB)
CI and deploy / migration-check (push) Failing after 13s
CI and deploy / deploy (push) Has been skipped
2026-05-25 11:25:29 +02:00
Dusan Vojacek
8bef1c6da6
prepsani s opusem dle planu
CI and deploy / migration-check (push) Failing after 13s
CI and deploy / deploy (push) Has been skipped
2026-05-24 22:44:21 +02:00
Dusan Vojacek
b44f74b249
HU BESS
CI and deploy / migration-check (push) Failing after 13s
CI and deploy / deploy (push) Has been skipped
2026-05-23 21:35:36 +02:00
Dusan Vojacek
d984716f69
speedup zalozka planning
CI and deploy / migration-check (push) Failing after 12s
CI and deploy / deploy (push) Has been skipped
2026-05-21 10:37:32 +02:00
Dusan Vojacek
44a06b6288
fix ranniho neprodeje do site
CI and deploy / migration-check (push) Failing after 42s
CI and deploy / deploy (push) Has been skipped
2026-05-21 10:02:19 +02:00
Dusan Vojacek
bcb05d4896
tuning palnneru
2026-05-04 19:04:48 +02:00
Dusan Vojacek
5ca5eab1d8
sync reference days
CI and deploy / migration-check (push) Failing after 14s
CI and deploy / deploy (push) Has been skipped
2026-05-02 14:05:09 +02:00
Dusan Vojacek
91ee8a6adf
fix zaporne spot ceny v nakupu
CI and deploy / migration-check (push) Failing after 12s
CI and deploy / deploy (push) Has been skipped
2026-05-01 14:27:08 +02:00
Dusan Vojacek
e686bc1d2c
fix solar sell pri male zaporne cene
CI and deploy / migration-check (push) Failing after 11s
CI and deploy / deploy (push) Has been skipped
2026-05-01 10:38:40 +02:00
Dusan Vojacek
9d37efb991
telemetrie per pv_array, fix predictinos
CI and deploy / migration-check (push) Failing after 24s
CI and deploy / deploy (push) Has been skipped
2026-04-29 13:03:41 +02:00
Dusan Vojacek
e35110cb87
speedup srovnani
CI and deploy / migration-check (push) Failing after 11s
CI and deploy / deploy (push) Has been skipped
2026-04-27 20:09:40 +02:00
Dusan Vojacek
c52946a4ce
fix BA81 nevybijeni do site
CI and deploy / migration-check (push) Failing after 9s
CI and deploy / deploy (push) Has been skipped
2026-04-27 19:24:37 +02:00
Dusan Vojacek
e96bb75b87
fix filename
CI and deploy / migration-check (push) Failing after 18s
CI and deploy / deploy (push) Has been skipped
2026-04-27 18:44:44 +02:00
Dusan Vojacek
5b94f8baec
fix prices reloading
CI and deploy / migration-check (push) Failing after 9s
CI and deploy / deploy (push) Has been skipped
2026-04-27 18:42:06 +02:00
Dusan Vojacek
e4d4fee24d
fix reload pv on dashboard
CI and deploy / migration-check (push) Failing after 15s
CI and deploy / deploy (push) Has been skipped
2026-04-27 18:39:13 +02:00
Dusan Vojacek
16fc6a065e
zrychleni pv forecast per day
CI and deploy / migration-check (push) Failing after 10s
CI and deploy / deploy (push) Has been skipped
2026-04-27 18:27:27 +02:00
Dusan Vojacek
50a0ca95f4
implementace LED loxone u zaporncyh cen
CI and deploy / migration-check (push) Failing after 10s
CI and deploy / deploy (push) Has been skipped
2026-04-26 22:49:47 +02:00
Dusan Vojacek
1d04790f28
extend webhook per site
CI and deploy / migration-check (push) Failing after 14s
CI and deploy / deploy (push) Has been skipped
2026-04-26 22:04:48 +02:00
Dusan Vojacek
5f96a4cf01
tuning BA81
CI and deploy / migration-check (push) Failing after 13s
CI and deploy / deploy (push) Has been skipped
2026-04-26 20:12:28 +02:00
Dusan Vojacek
c6ca68b263
posun dovybijejiciho okna tesne pred zapornou cenu
CI and deploy / migration-check (push) Failing after 8s
CI and deploy / deploy (push) Has been skipped
2026-04-26 01:39:48 +02:00
Dusan Vojacek
0edf9226cb
posun dovybiti tesnep red zapornou cenu
CI and deploy / migration-check (push) Failing after 11s
CI and deploy / deploy (push) Has been skipped
2026-04-26 01:30:28 +02:00
Dusan Vojacek
5d7d7e2823
puldenni sltovoani , zruseni omemzeni na zakaz exportu pri zapornem sellu, hlubsi vybijeni ped zaporbnym nakupem
CI and deploy / migration-check (push) Failing after 11s
CI and deploy / deploy (push) Has been skipped
2026-04-26 00:27:36 +02:00
Dusan Vojacek
1dfab8c7a1
dalsi uprava vypoctu delty (ignorujeme orezane vyroby)
CI and deploy / migration-check (push) Failing after 17s
CI and deploy / deploy (push) Has been skipped
2026-04-22 22:42:12 +02:00
Dusan Vojacek
568b584748
kalibrace per pole
CI and deploy / migration-check (push) Failing after 9s
CI and deploy / deploy (push) Has been skipped
2026-04-22 22:17:28 +02:00
Dusan Vojacek
b8515f30df
implmemtace cuttoff genportu
CI and deploy / migration-check (push) Failing after 9s
CI and deploy / deploy (push) Has been skipped
2026-04-20 10:41:10 +02:00
Dusan Vojacek
43b594c8d5
solver nastavuje stavy deye
CI and deploy / migration-check (push) Failing after 14s
CI and deploy / deploy (push) Has been skipped
2026-04-20 08:33:56 +02:00
Dusan Vojacek
e3776226a4
implmentace plan guardu
CI and deploy / migration-check (push) Failing after 17s
CI and deploy / deploy (push) Has been skipped
2026-04-19 23:10:25 +02:00
Dusan Vojacek
22bca9cd9e
fix repeatable migrations
2026-04-19 20:15:46 +02:00
Dusan Vojacek
0c93f493a4
fix lfywlay migration
CI and deploy / migration-check (push) Successful in 3s
CI and deploy / deploy (push) Failing after 13s
2026-04-19 20:09:07 +02:00
Dusan Vojacek
93f883f5e0
sql first refactor
CI and deploy / migration-check (push) Successful in 5s
CI and deploy / deploy (push) Failing after 20s
2026-04-19 20:02:20 +02:00
Dusan Vojacek
d5dcf33e13
fix V044
deploy / deploy (push) Successful in 16s
test / smoke-test (push) Successful in 6s
2026-04-19 12:19:12 +02:00
Dusan Vojacek
a1aa6acf61
Add support for inverter current caps in site configuration
...
deploy / deploy (push) Failing after 55s
test / smoke-test (push) Successful in 3s
- Introduced `InverterModbusCurrentCapsBody` model for updating max charge and discharge currents.
- Updated SQL queries to utilize `COALESCE` for effective current limits.
- Modified relevant tests to reflect changes in battery current handling.
- Added new SQL migration for `deye_register_max_current_a` columns in the database.
2026-04-19 12:10:37 +02:00
Dusan Vojacek
fd06811753
tune microcycling
deploy / deploy (push) Successful in 25s
test / smoke-test (push) Successful in 6s
2026-04-13 00:49:36 +02:00
Dusan Vojacek
3c9916f2c0
KV1 seed
deploy / deploy (push) Successful in 12s
test / smoke-test (push) Successful in 2s
2026-04-12 21:16:26 +02:00
Dusan Vojacek
0ba72c7704
fix mismatch rs485
deploy / deploy (push) Successful in 28s
test / smoke-test (push) Successful in 7s
2026-04-12 20:28:17 +02:00