diff --git a/typescript/frontend-marios2/src/content/dashboards/Log/graph.util.tsx b/typescript/frontend-marios2/src/content/dashboards/Log/graph.util.tsx index 9237e137d..3668f9f92 100644 --- a/typescript/frontend-marios2/src/content/dashboards/Log/graph.util.tsx +++ b/typescript/frontend-marios2/src/content/dashboards/Log/graph.util.tsx @@ -332,7 +332,10 @@ export interface JSONRecordData { ClusterNumber: number; PvNumber: number; - //For Sinexcel: TimeChargeDischarge mode + //For SodistoerHome-Growatt: + ControlPermission:boolean; + + //For SodistoerHome-Sinexcel: TimeChargeDischarge mode TimeChargeDischargePower?: number; TimeChargeDischargeTime?: string; TimeChargeDischargeDate?: string; @@ -643,7 +646,10 @@ export type ConfigurationValues = { clusterNumber: number; PvNumber: number; - // For Sinexcel: TimeChargeDischarge mode + //For sodistoreHome-Growatt: + controlPermission:boolean; + + // For sodistoreHome-Sinexcel: TimeChargeDischarge mode timeChargeDischargePower?: number; timeChargeDischargeTime?: Date | string; timeChargeDischargeDate?: Date | string; diff --git a/typescript/frontend-marios2/src/content/dashboards/SodiohomeInstallations/SodistoreHomeConfiguration.tsx b/typescript/frontend-marios2/src/content/dashboards/SodiohomeInstallations/SodistoreHomeConfiguration.tsx index 20689750e..1ced16d72 100644 --- a/typescript/frontend-marios2/src/content/dashboards/SodiohomeInstallations/SodistoreHomeConfiguration.tsx +++ b/typescript/frontend-marios2/src/content/dashboards/SodiohomeInstallations/SodistoreHomeConfiguration.tsx @@ -29,6 +29,8 @@ import { LocalizationProvider } from '@mui/x-date-pickers'; import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; import { DatePicker, TimePicker } from '@mui/x-date-pickers'; import dayjs from 'dayjs'; +import Switch from '@mui/material/Switch'; +import FormControlLabel from '@mui/material/FormControlLabel'; interface SodistoreHomeConfigurationProps { values: JSONRecordData; @@ -87,20 +89,31 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) { props.values.Config.OperatingPriority ), batteriesCount: props.values.Config.BatteriesCount, - ...(device === 4 - ? { - clusterNumber: props.values.Config.ClusterNumber??1, - PvNumber: props.values.Config.PvNumber??0, - timeChargeDischargePower: - props.values.Config?.TimeChargeDischargePower ?? 0, // default 0 W - timeChargeDischargeTime: props.values.Config?.TimeChargeDischargeTime - ? dayjs(props.values.Config.TimeChargeDischargeTime).toDate() - : dayjs().hour(8).minute(0).second(0).toDate(), // default 08:00 - timeChargeDischargeDate: props.values.Config?.TimeChargeDischargeDate - ? dayjs(props.values.Config.TimeChargeDischargeDate).toDate() - : dayjs().add(1, 'day').toDate(), // default = tomorrow - } - : {}), + clusterNumber: props.values.Config.ClusterNumber??1, + PvNumber: props.values.Config.PvNumber??0, + timeChargeDischargePower: props.values.Config?.TimeChargeDischargePower ?? 0, // default 0 W + timeChargeDischargeTime: props.values.Config?.TimeChargeDischargeTime ? dayjs(props.values.Config.TimeChargeDischargeTime).toDate() : dayjs().hour(8).minute(0).second(0).toDate(), // default 08:00 + timeChargeDischargeDate: props.values.Config?.TimeChargeDischargeDate ? dayjs(props.values.Config.TimeChargeDischargeDate).toDate() : dayjs().add(1, 'day').toDate(), // default = tomorrow + controlPermission: props.values.Config.ControlPermission??false, + // ...(device === 4 + // ? { + // clusterNumber: props.values.Config.ClusterNumber??1, + // PvNumber: props.values.Config.PvNumber??0, + // timeChargeDischargePower: + // props.values.Config?.TimeChargeDischargePower ?? 0, // default 0 W + // timeChargeDischargeTime: props.values.Config?.TimeChargeDischargeTime + // ? dayjs(props.values.Config.TimeChargeDischargeTime).toDate() + // : dayjs().hour(8).minute(0).second(0).toDate(), // default 08:00 + // timeChargeDischargeDate: props.values.Config?.TimeChargeDischargeDate + // ? dayjs(props.values.Config.TimeChargeDischargeDate).toDate() + // : dayjs().add(1, 'day').toDate(), // default = tomorrow + // } + // : {}), + // ...(device === 3 + // ? { + // controlPermission: props.values.Config.ControlPermission??true, + // } + // : {}), }); const handleOperatingPriorityChange = (event) => { @@ -122,7 +135,10 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) { batteriesCount:formValues.batteriesCount, clusterNumber:formValues.clusterNumber, PvNumber:formValues.PvNumber, - + timeChargeDischargePower: formValues.timeChargeDischargePower, + timeChargeDischargeTime: formValues.timeChargeDischargeTime, + timeChargeDischargeDate: formValues.timeChargeDischargeDate, + controlPermission:formValues.controlPermission // ...(device === 4 && // OperatingPriorityOptions[formValues.operatingPriority] === // 'TimeChargeDischarge' && { @@ -290,6 +306,37 @@ function SodistoreHomeConfiguration(props: SodistoreHomeConfigurationProps) { autoComplete="off" > <> + {device === 3 && ( +