diff --git a/frontend/src/hooks/useDashboardData.ts b/frontend/src/hooks/useDashboardData.ts index a141a24..c2f585e 100644 --- a/frontend/src/hooks/useDashboardData.ts +++ b/frontend/src/hooks/useDashboardData.ts @@ -25,8 +25,11 @@ import type { } from '../types/ems' import type { PlanningIntervalDto } from '../types/plan' -const POLL_FULL_MS = 30_000 -const POLL_LIVE_MS = 5_000 +const POLL_FULL_MS = 60_000 +const POLL_LIVE_MS = 15_000 + +/** Limit řádků vw_telemetry_15m_7d: jen okno zpět (s rezervou), ne celých 7 dní. */ +const TELEMETRY_15M_LIMIT = String(Math.ceil(SLOT_COUNT_BACK * 1.2)) function parseNum(v: string | number | null | undefined): number | null { if (v == null) return null @@ -211,8 +214,9 @@ export function useDashboardData(siteId: number | null) { getJson('/vw_site_status', { site_id: `eq.${siteId}` }), getJson('/vw_telemetry_15m_7d', { site_id: `eq.${siteId}`, + slot_start: `gte.${new Date(windowStart).toISOString()}`, order: 'slot_start.asc', - limit: '1000', + limit: TELEMETRY_15M_LIMIT, }), getJson('/vw_audit_today_hourly', { site_id: `eq.${siteId}`, diff --git a/frontend/src/hooks/useFullStatus.ts b/frontend/src/hooks/useFullStatus.ts index 8313970..864fbda 100644 --- a/frontend/src/hooks/useFullStatus.ts +++ b/frontend/src/hooks/useFullStatus.ts @@ -3,7 +3,7 @@ import { useCallback, useEffect, useState } from 'react' import { getSiteStatusFull } from '../api/backend' import type { FullStatusResponse } from '../types/fullStatus' -const POLL_MS = 60_000 +const POLL_MS = 120_000 export function useFullStatus(siteId: number | null) { const [data, setData] = useState(null)