-- 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');