FE implementace deye modu
This commit is contained in:
@@ -8,6 +8,37 @@ export type StatePanelProps = {
|
||||
nowIndex: number
|
||||
}
|
||||
|
||||
function deyeModeLabel(s: SlotData): string {
|
||||
const m = s.deye_physical_mode
|
||||
if (m === 'SELL') return 'SELL'
|
||||
if (m === 'CHARGE') return 'CHARGE'
|
||||
if (m === 'PASSIVE') return 'PASSIVE'
|
||||
return '—'
|
||||
}
|
||||
|
||||
function deyeModeBadge(s: SlotData): { label: string; klass: string; title: string } {
|
||||
const m = s.deye_physical_mode
|
||||
if (m === 'SELL') {
|
||||
return {
|
||||
label: 'SELL',
|
||||
klass: 'bg-orange-500/15 text-orange-200 ring-1 ring-orange-500/35',
|
||||
title: 'SELL (selling first): reg142=0, reg178=32 (grid peak shaving off)',
|
||||
}
|
||||
}
|
||||
if (m === 'CHARGE') {
|
||||
return {
|
||||
label: 'CHARGE',
|
||||
klass: 'bg-sky-500/15 text-sky-200 ring-1 ring-sky-500/35',
|
||||
title: 'CHARGE (grid charge): TOU grid_charge enabled v time pointech; reg178=48',
|
||||
}
|
||||
}
|
||||
return {
|
||||
label: 'PASSIVE',
|
||||
klass: 'bg-slate-600/40 text-slate-200 ring-1 ring-slate-500/30',
|
||||
title: 'PASSIVE (ZERO): reg142=deye_zero_export_mode; reg178=48',
|
||||
}
|
||||
}
|
||||
|
||||
/** Stav segmentu pro jeden track */
|
||||
export type TrackSegment = {
|
||||
widthPct: number
|
||||
@@ -431,6 +462,21 @@ function StatePanelRaw({ slots, nowIndex }: StatePanelProps) {
|
||||
<p className="mb-2 text-xs font-semibold uppercase tracking-wide text-slate-400">
|
||||
Energetický tok
|
||||
</p>
|
||||
<p className="mb-2 text-[10px] text-slate-500">
|
||||
Deye režim (plán):{' '}
|
||||
{(() => {
|
||||
const b = deyeModeBadge(slots[nowIndex]!)
|
||||
return (
|
||||
<span
|
||||
className={`inline-flex items-center rounded-md px-2 py-0.5 text-[10px] font-semibold ${b.klass}`}
|
||||
title={b.title}
|
||||
>
|
||||
{b.label}
|
||||
</span>
|
||||
)
|
||||
})()}
|
||||
<span className="ml-2 font-mono text-slate-500">{deyeModeLabel(slots[nowIndex]!)}</span>
|
||||
</p>
|
||||
<div className="space-y-2">
|
||||
<TrackRow label="Síť" segments={gridSegs} nowIndex={nowIndex} showNowLabel />
|
||||
<TrackRow label="Baterie" segments={batSegs} nowIndex={nowIndex} />
|
||||
|
||||
Reference in New Issue
Block a user