merge dev → main: aktivační migrace home-01 (notify/pool/start-penalty V111-113)
All checks were successful
CI and deploy / migration-check (push) Successful in 22s
CI and deploy / deploy (push) Successful in 1m8s

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dusan Vojacek
2026-06-14 23:20:32 +02:00
3 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
-- Aktivace proaktivní notifikace „píchni auto" pro Teslu na home-01.
-- V110 přidala flag asset_vehicle.presence_nudge_enabled (default false = inertní);
-- tato migrace ho operačně zapíná pro tesla-my. Job ev_presence_notify pak pošle
-- Discord nudge, když je auto doma + odpojené + (SoC < cíltolerance) + levné/přebytek.
-- Vypnutí později: nová migrace nebo operační update.
update ems.asset_vehicle
set presence_nudge_enabled = true
where code = 'tesla-my'
and site_id = (select id from ems.site where code = 'home-01');

View File

@@ -0,0 +1,38 @@
-- Aktivace řízení bazénového čerpadla na home-01 (Phase 1).
-- Kód: R__101 (fn_pool_schedule_slot / fn_pool_control_tick) + V087 (asset/telemetrie)
-- + R__094 (fn_signal_enqueue_bool) + signal_service. Tato migrace ho operačně zapíná:
-- 1) signal_route POOL_PUMP_ON → Shelly Gen2 RPC Switch.Set (http_rest), map_bool
-- true/false; switch id z asset_pool_pump.shelly_switch_id. verify_readback=false
-- (ověřuje se přes telemetry_pool_pump.is_on; readback verify lze doplnit později).
-- 2) schedulable = true → control tick (á 15 min) řídí relé dle nejlevnějšího okna
-- denního runtime budgetu (fn_pool_daily_runtime_min) + dump-load při sell<=0.
-- Tím se i opraví bazálový odečet (R__003): bazén je nyní řízený + plánovaný.
-- Idempotentní: route se vloží jen pokud ještě neexistuje.
insert into ems.signal_route
(site_id, signal_code, destination_type, endpoint_id, destination_key,
route_config_json, transform_json, verify_readback, enabled)
select
pp.site_id,
'POOL_PUMP_ON',
'http_rest',
pp.endpoint_id,
'pool-pump',
jsonb_build_object(
'method', 'GET',
'path_template', '/rpc/Switch.Set?id=' || pp.shelly_switch_id || '&on={value}'
),
'{"map_bool": {"true": "true", "false": "false"}}'::jsonb,
false,
true
from ems.asset_pool_pump pp
where pp.site_id = (select id from ems.site where code = 'home-01')
and pp.endpoint_id is not null
and not exists (
select 1 from ems.signal_route sr
where sr.site_id = pp.site_id and sr.signal_code = 'POOL_PUMP_ON'
);
update ems.asset_pool_pump
set schedulable = true
where site_id = (select id from ems.site where code = 'home-01');

View File

@@ -0,0 +1,10 @@
-- Aktivace anti-fragmentační start penalty EV na home-01 (konzervativně 0.5 Kč/start).
-- V108 přidala sloupec asset_ev_charger.planner_ev_start_penalty_czk (default 0 = no-op);
-- tato migrace zapíná malou penaltu → solver slepí EV nabíjení do souvislejší dávky
-- místo rozsekání. 3f floor (Fix B) už 1f trickle vyřešil; tohle je doladění.
-- Hodnota je laditelná — pokud by penalta přebíjela reálný cenový spread, snížit/zrušit
-- novou migrací nebo operačním updatem.
update ems.asset_ev_charger
set planner_ev_start_penalty_czk = 0.5
where site_id = (select id from ems.site where code = 'home-01');