From 90f79d9abe1a96d6c2b4567f97d410f6c8afd968 Mon Sep 17 00:00:00 2001 From: Dusan Vojacek Date: Thu, 11 Jun 2026 14:21:28 +0200 Subject: [PATCH] =?UTF-8?q?v=C3=BDkon:=20pomalej=C5=A1=C3=AD=20polling=20(?= =?UTF-8?q?60/15/120=20s)=20a=20dynamick=C3=BD=20limit=20telemetrie=2015m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/hooks/useDashboardData.ts | 10 +++++++--- frontend/src/hooks/useFullStatus.ts | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) 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)