frontend: add DSMR data panel to Energy page
- New 'DSMR' tab showing the latest parsed telegram (GET /api/energy/dsmr/latest) as a key/value table — the source-of-truth view so you can see ingest is landing data without reading the DB. - Auto-refresh toggle (~10s); loading/error/empty states (empty explains the likely cause); null phase values shown as a dash. - useDsmrLatest extended with optional auto-refresh. Tests added.
This commit is contained in:
@@ -44,6 +44,7 @@ import { EnergyCharts } from '../energy/EnergyCharts'
|
||||
import { ContractManager } from '../energy/ContractManager'
|
||||
import { TibberPrices } from '../energy/TibberPrices'
|
||||
import { CostView } from '../energy/CostView'
|
||||
import { DsmrPanel } from '../energy/DsmrPanel'
|
||||
import type { ModbusDevice, ModbusTestReadResponse, MetricInfo } from '../energy/hooks'
|
||||
import { ApiError } from '../api/client'
|
||||
import { formatMetricValue } from '../energy/format'
|
||||
@@ -628,6 +629,9 @@ export function EnergyPage() {
|
||||
<Tabs.Tab value="costs" data-testid="tab-costs">
|
||||
Costs
|
||||
</Tabs.Tab>
|
||||
<Tabs.Tab value="dsmr" data-testid="tab-dsmr">
|
||||
DSMR
|
||||
</Tabs.Tab>
|
||||
</Tabs.List>
|
||||
|
||||
<Tabs.Panel value="devices" data-testid="panel-devices">
|
||||
@@ -645,6 +649,10 @@ export function EnergyPage() {
|
||||
<Tabs.Panel value="costs" data-testid="panel-costs">
|
||||
<CostView />
|
||||
</Tabs.Panel>
|
||||
|
||||
<Tabs.Panel value="dsmr" data-testid="panel-dsmr">
|
||||
<DsmrPanel />
|
||||
</Tabs.Panel>
|
||||
</Tabs>
|
||||
</Container>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user