ReleaseResponseBodyDto
releaseDescriptionRelease Description for current release page
assetKeyS3 object key for the release media asset
assetTypeType of media asset (image or video)
assetUrlUrl to access the media asset
ReleaseResponseDto
_idUnique identifier for the release
releaseTitleRelease Title for current global operation
Array of objects containing respective descriptions and media for the release.
ReleaseBodyDto
releaseDescriptionRelease description for current release page
fileMedia file (image or video) for the current release page
existingAssetKeyExisting S3 object key for the release media asset
ReleaseDto
releaseTitleRelease Title for current global operation
Array of objects containing respective descriptions and media for the release.
CreateManufacturerApiKeyDto
labelHuman-readable label for this key
ManufacturerApiKeyCreatedResponseDto
_idlabelkeyPrefixFirst 8 chars of the key (for identification only)
enabledcreatedAtupdatedAtkeyFull API key — shown once only, store it securely
ManufacturerApiKeyResponseDto
_idlabelkeyPrefixFirst 8 chars of the key (for identification only)
enabledcreatedAtupdatedAtDeviceType
Type of device (PLUG, MCB, etc.)
UsageHistoryHour
_idPrimary ID of the UsageHistoryHour
hourNo. What Hour (E.g. 7 means 0700 - 0800)
onStatusStatus of the Plug (ON / OFF)
deviceTypeType of device (PLUG, MCB, etc.)
createdAtDate Time of the Creation
updatedAtDate Time of the Update
actualDateDate Time of the Update
macIdMAC ID of the device
deviceReference to the device
wifiStrengthWiFi signal strength at the time of the hourly record
UsageHistoryDay
_idPrimary ID of the UsageHistoryDay
Usage History of the device (Hourly)
createdAtDate Time of the Creation
updatedAtDate Time of the Update
deviceTypeType of device (PLUG, MCB, etc.)
macIdMAC ID of the device
deviceReference to the device
UsageHistoryDayWithCostBreakdownDto
dateNo. Hour of the Usage History
totalEnergyUsageTotal Energy Usage in a Day (kWh)
costEnergy cost for this day in dollars. Zero (0) if no tariff rate is configured for this day.
tariffRateTariff rate applied for this day in cents per kWh/L. Null if no tariff rate is configured.
UsageHistoryDayBreakdownDto
dateNo. Hour of the Usage History
totalEnergyUsageTotal Energy Usage in a Day (kWh)
UsageHistoryHourBreakdownDto
hourNo. Hour of the Usage History
totalEnergyUsageTotal Energy Usage in a Hour (kWh)
UsageHistoryHourWithTariffResponseDto
Array of hourly usage data
currentTariffRateCurrent tariff rate in cost per kWh. Null if no tariff rate is configured. Useful for frontend calculations.
UsageHistoryEnergyRealtimeDto
onStatusStatus of the device (ON / OFF)
createdAtDate Time of the Creation
currentCurrent in Amperes (A)
voltageVoltage in Volts (V)
powerFactorPower factor (0-1)
powerPower in Watts (W)
McbRealtimeDataPointDto
createdAtpowerSummed power at this timestamp in Watts (W)
McbRealtimeSeriesDto
measurementTypeMCB measurement type for this series, or "COMBINED" for the total across all types
maxMaximum power value across all data points in this series (W). Only present for the COMBINED series.
averageAverage power value across all data points in this series (W). Only present for the COMBINED series.
McbRoomRealtimeResponseDto
One time-series per MCB measurement type found in the room, plus a COMBINED series that sums all types
RoomMcbAiInsightResponseDto
summaryOne-liner summary of room energy behaviour
List of predicted devices and why
DeviceEnergyDto
energyTotal energy consumed by the device in watt-hours.
UsageWithCostResponseDto
totalEnergyUsageTotal energy usage in kWh
totalCostTotal cost based on current tariff rate. Null if no tariff rate is configured.
tariffRateCurrent tariff rate in cost per kWh. Null if no tariff rate is configured.
UsageHistoryHourSmartSwitchResponseDto
hourHour of the day (0–23)
onStatusDevice on/off status for this hour
createdAtRecord creation timestamp
downTimeTotal downtime in milliseconds for this hour (3600000 = full hour down)
gangSwitchStatusGang switch states reported by the device (array index = gang index, 1 = ON, 0 = OFF)
actualDateActual date this hourly record is for
UsageHistoryAirconControlRealtimeResponseDto
onStatusDevice on/off status
createdAtRecord creation timestamp
ambientTemperatureAmbient temperature in Celsius
ambientHumidityAmbient humidity percentage
UsageHistoryHourAirconControlResponseDto
hourHour of the day (0–23)
onStatusDevice on/off status for this hour
createdAtRecord creation timestamp
downTimeTotal downtime in milliseconds for this hour (3600000 = full hour down)
ambientTemperatureAmbient temperature in Celsius
ambientHumidityAmbient humidity percentage
actualDateActual date this hourly record is for
HourlyBoxplotEntryDto
minMinimum value
q1First quartile (25th percentile)
medianMedian (50th percentile)
q3Third quartile (75th percentile)
maxMaximum value
hourHour of the day (0-23)
sensorCountNumber of distinct sensors with data in this hour
HourlyBoxplotResponseDto
Hourly box plot entries (only hours with data)
availableMetricsAvailable metrics based on the sensor types of the requested sensors
BoxStatsDto
minMinimum value
q1First quartile (25th percentile)
medianMedian (50th percentile)
q3Third quartile (75th percentile)
maxMaximum value
SensorBreakdownDto
sensorIdSensor device ID
sensorNameSensor device name
meanArithmetic mean of the metric value
HourlyDrilldownResponseDto
Overall box plot statistics across all readings
Per-sensor breakdown with mean values
totalSensorsTotal number of sensors with data
UsageHistoryHourEnvironmentSensor
_idPrimary ID of the UsageHistoryHour
hourNo. What Hour (E.g. 7 means 0700 - 0800)
onStatusStatus of the Plug (ON / OFF)
deviceTypeType of device (PLUG, MCB, etc.)
createdAtDate Time of the Creation
updatedAtDate Time of the Update
actualDateDate Time of the Update
macIdMAC ID of the device
deviceReference to the device
carbonDioxideCurrent CO2 reading in ppm
formaldehydeCurrent formaldehyde (HCHO) reading in ppm
temperatureCurrent temperature reading in degrees Celsius
humidityCurrent humidity percentage
fineParticulateMatterCurrent Fine Particulate Matter in µg/m3
coarseParticulateMatterCurrent Coarse Particulate Matter in µg/m3
totalVolatileOrganicCompoundsTotal Volatile Organic Compounds in ppm
soundLevelCurrent Sound Level in dB
motionDetectedMotion detection status
wifiStrengthWiFi signal strength at the time of the hourly record
UsageHistoryEnvironmentSensor
_idPrimary ID of the Usage History Real Time
onStatusStatus of the device (ON / OFF)
deviceTypeType of device (PLUG, MCB, etc.)
macIdMAC ID of the device
deviceReference to the device
createdAtDate Time of the Creation
temperatureCurrent temperature reading in degrees Celsius
carbonDioxideCurrent CO2 reading in ppm
formaldehydeCurrent formaldehyde (HCHO) reading in ppm
humidityCurrent humidity percentage
fineParticulateMatterCurrent Fine Particulate Matter in µg/m3
coarseParticulateMatterCurrent Coarse Particulate Matter in µg/m3
totalVolatileOrganicCompoundsTotal Volatile Organic Compounds in ppm
soundLevelCurrent Sound Level in dB
motionDetectedMotion detection status
UsageHistoryHourWaterMeter
_idPrimary ID of the UsageHistoryHour
hourNo. What Hour (E.g. 7 means 0700 - 0800)
onStatusDevice status during this hour
deviceTypeType of device (PLUG, MCB, etc.)
createdAtDate Time of the Creation
updatedAtDate Time of the Update
actualDateDate Time of the Update
macIdMAC ID of the device
deviceReference to the device
waterConsumptionTotal water consumption for this hour (liters)
realTimeFlowRateAverage flow rate for this hour (L/min)
realTimePressureAverage pressure for this hour (bar)
wifiStrengthWiFi signal strength at the time of the hourly record
realTimeTemperatureAverage temperature for this hour (Celsius)
UsageHistoryWaterMeter
_idPrimary ID of the Usage History Real Time
onStatusDevice status
deviceTypeType of device (PLUG, MCB, etc.)
macIdMAC ID of the device
deviceReference to the device
createdAtDate Time of the Creation
realTimeFlowRateCurrent flow rate in liters per minute (L/min)
realTimePressureWater pressure in bar
waterConsumptionCumulative water consumption in liters
realTimeTemperatureWater temperature in Celsius
UsageHistoryDayWaterMeter
_idPrimary ID of the UsageHistoryDay
Usage History of the device (Hourly)
createdAtDate Time of the Creation
updatedAtDate Time of the Update
deviceTypeType of device (PLUG, MCB, etc.)
macIdMAC ID of the device
deviceReference to the device
waterConsumptionTotal daily water consumption (liters)
realTimeFlowRateAverage daily flow rate (L/min)
realTimePressureAverage daily pressure (bar)
realTimeTemperatureAverage daily temperature (Celsius)
Role
Administrator role defining access permissions (SUPERADMIN or ADMIN)
SignUpDto
nameFull name of the administrator
emailEmail address for the administrator account (must be unique)
roleAdministrator role defining access permissions (SUPERADMIN or ADMIN)
approvedWhether the admin account is approved and can access the system
passwordAccount password (minimum 6 characters, optional for invited admins)
associatedZoneOptional zone ID to associate this admin with a specific zone account
associatedTenantOptional tenant ID to associate this admin with a specific tenant
LoginResponseDto
isSuccessfulIndicates if the login was successful
idUser ID of the authenticated user
tokenJWT authentication token
mainSystemIdMain system ID associated with the user
requires2FAIndicates if the user has 2FA enabled and needs to complete 2FA verification
roleRole of the authenticated user
associatedTenantIdAssociated tenant ID if user has TENANT role
associatedUserIdAssociated user ID if user has USER role
refreshTokenRefresh token for obtaining new access tokens. Not provided when 2FA verification is pending.
FrontendApp
Frontend app identifier for role-based access control
LoginDto
emailAdministrator email address used for authentication
passwordAdministrator password (minimum 6 characters)
appFrontend app identifier for role-based access control
InviteDto
inviterIdID of the administrator sending the invitation
systemIdSystem ID where the new admin will have access
nameFull name of the person being invited
emailEmail address where the invitation will be sent
roleRole to be assigned to the new administrator (SUPERADMIN or ADMIN)
associatedZoneOptional zone ID to link this admin account to an existing zone
associatedTenantOptional tenant ID to associate this admin with a specific tenant for billing
ReInviteDto
inviterIdID of the Admin that is inviting
systemIdID of the System
emailEmail of the Admin
SignUpViaInviteDto
tokenReset password token for the Admin
passwordPassword of the Admin
ResetPasswordDto
tokenReset password token for the Admin
newPasswordNew password for the Admin
Auth2FAResponseDto
issuerIssuer for the 2FA secret
labelLabel for the 2FA secret
secret2FA secret
Disable2FAResponseDto
messageSuccess message
Disable2FASystemResponseDto
messageSuccess message
affectedUsersNumber of users whose 2FA was disabled
BasicEmailNotificationDto
receiverEmailEmail address of the receiver
subjectSubject of the email notification
contentContent of the email notification
PublicWebEmailNotificationDto
firstNamefirst name of the sender
lastNamelast name of the sender
phoneNumberphone number of the sender
companycompany name of the sender
emailEmail address of the sender
messageContent of the email notification
FeatureType
Feature type identifier from the predefined feature enum. Determines the functional category of the feature.
CreateFeatureDto
nameDisplay name of the feature. Used for identification in the user interface.
featureTypeFeature type identifier from the predefined feature enum. Determines the functional category of the feature.
descriptionDetailed description of what the feature does and its purpose within the system.
Feature
_idPrimary ID of the feature
nameName of the feature
featureTypeType of the feature
descriptionDescription of the feature
createdAtIndicates the creation time of the feature
updatedAtIndicates the last update time of the feature
UpdateFeatureDto
nameDisplay name of the feature. Used for identification in the user interface.
featureTypeFeature type identifier from the predefined feature enum. Determines the functional category of the feature.
descriptionDetailed description of what the feature does and its purpose within the system.
ApiTokenResponseDto
tokenApi token string for accessing external APIs
GetSystemDetailsDto
_idUnique identifier of the system in the database.
systemNameName of the system. Typically represents an organization, building, or facility using the Ecovolt platform.
GetAdminDto
_idUnique identifier of the admin account in the database.
nameFull name of the admin user. Used for identification and display purposes.
emailEmail address of the admin user. Used for authentication and notifications.
roleAdministrative role determining the level of access and permissions within the system.
Array of systems that are linked to and managed by this admin. Includes full system details for each linked system.
approvedIndicates whether the admin account has been approved by a superadmin.
createdAtTimestamp when the admin account was created in the system.
updatedAtTimestamp when the admin account was last modified.
pendingIndicates whether the admin account is awaiting approval. True if not yet approved.
mainSystemIdMain system ID, typically the first system in the systems array. Used as the default system for the admin.
associatedUserIdReference to the associated User ID if this admin account is linked to a specific user.
associatedTenantIdReference to the associated Tenant ID if this admin account is linked to a specific tenant.
enable2FAIndicates whether two-factor authentication is enabled for this admin account.
HttpMethods
HTTP method used with the API token
ApiTokenUsageDto
_idPrimary ID of the ApiTokenUsage
urlURL accessed using the API token
methodHTTP method used with the API token
createdAtDate when the usage was recorded
updatedAtDate when the usage was last updated
ApiTokenUsageSearchResultDto
Array of API token usage records
totalTotal number of matching records
GetApiTokenWithUsageDto
_idPrimary ID of the API token
adminGetAdminDto ID reference
systemIdSystem ID associated with the API token
systemNameSystem name associated with the API token
usageCountNumber of times this API token has been used
createdAtDate when the API token was created
updatedAtDate when the API token was last updated
SurgeConfig
calculatedThresholdKwhAuto-calculated threshold (median) in kWh
defaultViolationCountDefault number of violations to trigger flagging
defaultViolationWindowDefault rolling window in days for violation counting
manualThresholdKwhManual threshold override in kWh (if provided)
sentinelPowerRangeRulesSentinel power range rules for suspected device classification
LocationObject
locationInputLocation of the Tenant
typeType of the Tenant
coordinatesGeolocation of the Tenant
DeviceChipModel
Hardware chip model identifier used in the device
SandboxDevice
idUnique identifier for the sandbox device
typeType of sandbox device
nameUser-defined name for the device
digitalTwinXX position on the digital twin canvas
rowLineRow line position (1-6)
ratedCurrentRated current in amperes
ratedVoltageRated voltage in volts
mcbTypeMCB type (for DUMB_MCB devices)
mcbPolesMCB poles configuration (for DUMB_MCB devices)
leakageCurrentLeakage current in milliamperes (for RCCB devices)
colorCustom color for visual identification
notesAdditional notes about the device
WireConnection
deviceIdDevice ID (MCB._id or SandboxDevice.id)
deviceTypeType of device being connected
sideSide of the device where the connection is made
SandboxWire
idUnique identifier for the wire connection
Source connection point
Target connection point
colorWire color (hex code)
thicknessWire thickness in pixels
labelOptional label for the wire
DistributionBox
_idPrimary ID of the Distribution Box
nameName/identifier of the Distribution Box
systemSystem to which this distribution box belongs
createdAtDate and time when the distribution box was created
updatedAtDate and time when the distribution box was last updated
boxNumberUnique box number for identification within a system
numberOfRowsNumber of rows in the distribution box
mcbsArray of MCB IDs or partially populated MCB objects (_id, deviceName, macId, onStatus)
hasMainBreakerWhether the distribution box has a main circuit breaker
mainBreakerRatingMain breaker rating in amperes (if hasMainBreaker is true)
locationPhysical location where the distribution box is installed
remarksAdditional remarks or notes about the distribution box
tenantTenant to which this distribution box belongs
zoneZone to which this distribution box belongs
roomRoom where this distribution box is located
Array of sandbox (non-smart) devices in the distribution box
Array of wire connections between devices in the distribution box
digitalTwinWidthWidth of the digital twin canvas in pixels
digitalTwinHeightHeight of the digital twin canvas in pixels
singleLineDiagramKeyS3 key for the single line diagram image
singleLineDiagramUrlCDN URL for the single line diagram image
Room
_idPrimary ID of the Room
nameName of the Room
remarksRemarks for the Room
roomEnergyReportRoom Energy Report
All IoT devices in the Room (Plugs, MCBs, Environment sensors, etc.)
All distribution boxes in the Room
systemSystem ID reference
Zone tagged to room
tenantTenant ID reference
roomTypeRoom type key — must match a valid room type for this system
squareMeterFloor area of the room in square meters
floorPlanKeyS3 key for the floor plan image
floorPlanUrlCDN URL for the floor plan image
Zone
_idPrimary ID of the Zone
nameName of the Zone
emailEmail of the Zone
remarksRemarks for the Zone
zoneEnergyReportZone Energy Report
tenantTenant ID reference
roomsArray of Room IDs
All IoT devices under the Zone (Plugs, MCBs, Environment sensors, etc.)
All distribution boxes under the Zone
zoneTypeZone type key — must match a valid zone type for this system
floorPlanKeyS3 key for the 2D floor plan image
floorPlanUrlCDN URL for the 2D floor plan image
floorPlan3D floor plan design linked to this zone
ScheduledActionType
Action type to execute at scheduled time
OneTimeScheduleEntry
dateTimeScheduled date and time (ISO 8601 format)
actionAction type to execute at scheduled time
actionValueOptional value for actions that require it (e.g., temperature for SET_TEMPERATURE, brightness for SET_BRIGHTNESS)
ruleNameEventBridge rule name for tracking and management
DailyScheduleEntry
timeScheduled time in HH:mm format
actionAction type to execute at scheduled time
actionValueOptional value for actions that require it (e.g., temperature for SET_TEMPERATURE, brightness for SET_BRIGHTNESS)
ruleNameEventBridge rule name for tracking and management
ScheduleConfirmationState
Confirmation state of the offline device schedule. PENDING until device confirms receipt via MQTT.
DeviceSchedule
One-time scheduled tasks that execute once and auto-delete after execution
Recurring schedule entries for Monday
Recurring schedule entries for Tuesday
Recurring schedule entries for Wednesday
Recurring schedule entries for Thursday
Recurring schedule entries for Friday
Recurring schedule entries for Saturday
Recurring schedule entries for Sunday
confirmationStateConfirmation state of the offline device schedule. PENDING until device confirms receipt via MQTT.
Device
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
deviceModelModel name or identifier of the device
deviceBrandBrand or manufacturer of the device
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
Tenant
_idPrimary ID of the Tenant
tenantNameName of the Tenant
remarksRemarks for the Plug
Locations of the Tenant
levelLevel of the Tenant
energyUsageEnergy Usage of the Tenant (Separated from the Tenants)
systemSystem ID reference
tenantEnergyReportTenant Report
All IoT devices under the Tenant (Plugs, MCBs, Environment sensors, etc.)
All distribution boxes under the Tenant
Zones under the Tenant
roomsArray of Room IDs
tenantEmailEmail of the Admin
tenantTypeTenant type key — must match a valid tenant type for this system
Price
monthlyPrice for monthly subscription in cents
quarterlyPrice for quarterly subscription in cents
yearlyPrice for yearly subscription in cents
SubscriptionTier
_idThe unique identifier of the subscription tier
nameThe name of the subscription tier
descriptionThe description of the subscription tier
The price of the subscription tier
The features included in the subscription tier
createdAtThe date when the subscription tier was created
updatedAtThe date when the subscription tier was last updated
isDeletedIndicates whether the subscription tier is deleted
SystemPermission
Array of features that are currently enabled for this system
Subscription tier that defines available features for the system
updatedAtTimestamp when the permission settings were last updated
expiryDateOptional expiry date for the current permission settings
ExclusionMode
FULL: skip all schedules for the day. TIMED: skip recurring schedules but run devices within timeStart–timeEnd.
ScheduleExclusion
dateISO date format (YYYY-MM-DD)
nameName of the exclusion day
typeType of exclusion
modeFULL: skip all schedules for the day. TIMED: skip recurring schedules but run devices within timeStart–timeEnd.
countryCodeISO country code (for holidays from API)
timeStartTime (HH:mm) when devices turn ON. Only set when mode is TIMED.
timeEndTime (HH:mm) when devices turn OFF. Only set when mode is TIMED.
SystemTimezone
IANA timezone identifier for the system location. Used for scheduling and public holiday calculations.
EntityLabelPairDto
singularSingular form of the label
pluralPlural form of the label
SystemEntityLabelsDto
Custom label for the zone entity
Custom label for the tenant entity
Custom label for the room entity
System
_idPrimary ID of the system
systemNameName of the system
maxMissedHeartbeatsMaximum number of missed heartbeats before the plug is considered offline (1 heart beat = 1 minute)
watchDogTimerRuleNameName of the Watch Dog Timer Rule for the system
inActiveDevicesCronJobRuleNameName of the Inactive Devices Cron Job Rule for the system
remarksRemarks for the system
startPilotDateStart date of the pilot program
endPilotDateEnd date of the pilot program
realTimeToggleOnReal Time Toggle Status for the system
heartBeatIntervalHeart Beat Interval for the system
Locations of the Tenant
createdAtDate Time of the Creation
updatedAtDate Time of the Update
createdAdminAdmin which created the system
systemEnergyReportSystem Report
adminsArray of Admin IDs
tenantsArray of Tenant IDs
All IoT devices in the System (Plugs, MCBs, Environment sensors, etc.)
All distribution boxes in the System
System permission settings including subscription tier, enabled features, and metadata
countryCodeISO 3166-1 alpha-2 country code for the system. Determines which public holidays are available for scheduling.
timezoneIANA timezone identifier for the system location. Used for scheduling and public holiday calculations.
inactiveDevicesSnapshotEnabledWhether notifications are sent for the daily inactive devices snapshot for this system. When disabled, snapshots are still saved to the database for historical tracking, but no in-app notifications, emails, or Telegram messages are sent.
Dates when recurring schedules will NOT execute
surgeMonitoringScheduleNameName of the surge monitoring daily check scheduled task rule for this system. If present, surge monitoring is enabled. If absent/undefined, monitoring is disabled.
surgeMonitoringDigestScheduleNameName of the surge monitoring digest scheduled task rule for this system
Surge monitoring configuration by entity type (ROOM, TENANT, USER). Map keys are MonitoringEntityType enum values.
notificationChannelConfigPer-notification-group channel configuration. Keys are NotificationGroup values. Controls which delivery channels (email, sms, push) are enabled for each notification group.
notificationEmailSubscribersArray of Admin IDs
telegramGroupChatIdTelegram group chat ID for this system. When set, notifications are sent to this Telegram group.
scheduleAdjustmentConfigSchedule adjustment configuration for this system. Controls automatic schedule adjustments based on user manual override patterns.
Custom display labels for entity types (zone, tenant, room). Each entry has a singular and plural form. When absent, the frontend uses default names.
NotificationType
Type of the Notification (ENUM)
Notification
_idPrimary ID of the Notification
titleTitle of the Notification
messageMessage of the Notification
systemSystem ID reference
deviceNotification for a specific Device
typeType of the Notification (ENUM)
recieveTypeType of the Notification (ENUM)
isResolvedStatus of the Notification
isSystemLevelWhether this is a system-level notification (visible to all admins in the system)
createdAtCreation date of the Notification
updatedAtLast update date of the Notification
adminAdmin ID reference
Admin
_idPrimary ID of the Admin
nameName of the Admin
emailEmail of the Admin
roleRole of the Admin (ENUM)
Profile Image of the Admin
systemsSystems available to use for the Admin
approvedWhether the Admin is approved
Notifications associated with the Admin
twoFASecretThe secret for 2FA setup
enable2FAIndicates whether 2FA is enabled for the Admin
createdAtDate when the Admin was created
updatedAtDate when the Admin was last updated
passwordPassword of the Admin
pendingIndicates whether the Admin's invitation is pending
Reference to the associated Zone
associatedTenantTenant ID reference
CreateSystemDto
systemNameName of the system. Typically represents an organization, building, or facility using the Ecovolt platform.
maxMissedHeartbeatsMaximum number of consecutive missed heartbeats before a plug is marked as offline. Used for monitoring plug connectivity.
realTimeToggleOnControls whether plugs in this system should send real-time energy data. When enabled, increases data transmission frequency.
heartBeatIntervalInterval in minutes between heartbeat signals from plugs. Determines how frequently plugs report their online status.
Geographic location details of the system. Includes address, city, country, and coordinates for mapping purposes.
costPerKWhInitial cost per kilowatt-hour (kWh) in cents for this system. This will be used to create the first tariff rate period. Example: 30.65 cents = $0.3065 per kWh.
countryCodeISO 3166-1 alpha-2 country code for the system. Determines which public holidays are available for scheduling.
timezoneSystem timezone used for scheduling and public holiday calculations. Should match the country code.
adminAdmin ID reference
subscriptionTierUnique identifier of the subscription tier to assign to this system. Determines available features and usage limits.
remarksAdditional notes or comments about the system. Useful for documenting special configurations or pilot program details.
startPilotDateStart date of the pilot program for this system. Used for tracking trial periods and generating time-based reports.
endPilotDateEnd date of the pilot program for this system. After this date, the system may transition to a permanent subscription.
GetSystemDto
_idUnique identifier of the system
systemNameName of the system
maxMissedHeartbeatsMaximum number of missed heartbeats before a plug is considered offline
realTimeToggleOnReal-time data toggle status for the system
heartBeatIntervalHeartbeat interval in minutes
numberOfAdminsNumber of admins linked to the system
numberOfDevicesNumber of devices in the system
deviceOnCountNumber of devices currently in ON status for this system.
deviceOffCountNumber of devices currently in OFF status for this system.
deviceInactiveCountNumber of devices currently in INACTIVE status for this system.
Location details of the system
createdAtWhen the system was created
updatedAtWhen the system was last updated
createdAdminAdmin ID reference
GetSystemsDto
systemsArray of GetSystemDto IDs
totalTotal number of systems
pageCurrent page number
sizeNumber of items per page
totalPagesTotal number of pages
TenantEnergyUsageDto
tenantIdUnique identifier of the tenant
tenantNameName of the tenant
energyUsageTotal energy usage in kilowatt-hours (kWh) for the specified period
GetTenantEnergyUsageResponseDto
systemIdSystem ID for which tenant energy usage was calculated
daysNumber of days the energy usage was calculated over
startDateStart date of the energy usage period (ISO 8601 format)
endDateEnd date of the energy usage period (ISO 8601 format)
List of tenants with their energy usage data
totalTenantsTotal number of tenants found in this system
totalEnergyUsageTotal energy usage across all tenants in kWh
CreateTariffRateDto
costPerKWhCost in cents per kWh
effectiveFromDate when this tariff rate becomes effective (ISO 8601 format)
notesNotes or reason for this tariff rate change
GetTariffRatePeriodDto
_idTariff rate period ID
systemSystem ID that this tariff rate applies to
costPerKWhCost in cents per kWh
effectiveFromDate when this tariff rate becomes effective
createdAtTimestamp when this record was created
updatedAtTimestamp when this record was last updated
effectiveToDate when this tariff rate expires (null means currently active)
notesNotes or reason for this tariff rate change
createdByAdmin who created this tariff rate
GetTariffRateHistoryDto
Array of tariff rate periods
totalTotal number of tariff rate periods for this system
pageCurrent page number (1-indexed)
sizeNumber of items per page
UpdateTariffRateDto
costPerKWhUpdated tariff rate in cents per kWh
effectiveFromUpdated start date for this tariff rate period
effectiveToUpdated end date for this tariff rate period (null means currently active)
notesNotes or reason for this tariff rate
PublicHolidayResponseDto
datenamecountryCodeISO country code (for holidays from API)
CustomExclusionEntryDto
nameHuman-readable name for this exclusion
modeFULL: skip all schedules for the day. TIMED: skip recurring schedules but run devices within timeStart–timeEnd.
dateSingle date in YYYY-MM-DD format. Cannot be used with startDate/endDate.
startDateRange start in YYYY-MM-DD format. Must be used with endDate.
endDateRange end in YYYY-MM-DD format. Must be used with startDate.
typeExclusion type. Defaults to CUSTOM if omitted.
countryCodeCountry code for HOLIDAY entries (e.g. "SG"). Optional.
timeStartRequired when mode is TIMED. Time (HH:mm, system timezone) when devices turn ON.
timeEndRequired when mode is TIMED. Time (HH:mm, system timezone) when devices turn OFF.
BulkAddCustomExclusionsDto
List of exclusion entries. Each can be a full-day exclusion or a timed override.
replaceExistingOfTypeIf set, all existing exclusions of this type are removed before the new entries are inserted. Use HOLIDAY to sync public holidays without accumulating stale entries.
BulkAddCustomExclusionsResponseDto
exclusionsReplacedNumber of existing exclusions removed (when replaceExistingOfType is set)
exclusionsAddedNumber of new exclusion dates added
duplicatesSkippedNumber of dates skipped because an exclusion already existed
timedOverridesAppliedNumber of TIMED entries processed
oneTimeTasksCreatedTotal one-time ON+OFF tasks created across all TIMED entries and devices
devicesProcessedNumber of devices that received one-time tasks (relevant for TIMED entries)
UpdateSystemDto
systemNameName of the system. Typically represents an organization, building, or facility using the Ecovolt platform.
Geographic location details of the system. Includes address, city, country, and coordinates for mapping purposes.
subscriptionTierUnique identifier of the subscription tier to assign to this system. Determines available features and usage limits.
remarksAdditional notes or comments about the system. Useful for documenting special configurations or pilot program details.
startPilotDateStart date of the pilot program for this system. Used for tracking trial periods and generating time-based reports.
endPilotDateEnd date of the pilot program for this system. After this date, the system may transition to a permanent subscription.
countryCodeISO 3166-1 alpha-2 country code for the system. Determines which public holidays are available for scheduling.
timezoneSystem timezone used for scheduling and public holiday calculations. Should match the country code if both are provided.
Custom display labels for entity types (zone, tenant, room). Each entry has a singular and plural form. When absent, the frontend falls back to default names.
HeartBeatConfigurationDto
toggleOnControls whether plugs in this system should send real-time energy data. When enabled, increases data transmission frequency for live monitoring.
heartBeatIntervalInterval in minutes between heartbeat signals from plugs. Determines how frequently plugs report their online status to the system.
maxMissedHeartbeatsMaximum number of consecutive missed heartbeats before a plug is marked as offline. The timeout duration equals maxMissedHeartbeats × heartBeatInterval minutes.
LinkAdminToSystemDto
adminIdUnique identifier of the admin account to be linked to the system. This establishes a management relationship between the admin and the system.
LinkAdminResponseDto
systemSystem ID reference
adminAdmin ID reference
UnlinkAdminResponseDto
systemSystem ID reference
adminAdmin ID reference
UpdateSystemPermissionDto
subscriptionTierUnique identifier of the subscription tier to assign to this system. Changes the base feature set and limitations.
featuresEnabledArray of feature identifiers to enable for this system. Overrides or extends the default features from the subscription tier.
expiryDateExpiration date for the system permission. After this date, the system may lose access to certain features or services.
ScheduleAdjustmentConfigDto
enabledWhether schedule adjustment suggestions are enabled. If false, no suggestions will be generated.
autoApplyEnabledWhether auto-apply is enabled after reaching threshold. If false, always require manual approval. When enabled, patterns are applied on the NEXT manual toggle after threshold.
occurrenceThresholdNumber of occurrences required before auto-apply. Examples: 3 = quick response, 5 = balanced, 10 = conservative
timeWindowMinutesTime window in minutes for grouping similar override times. Overrides within this window are considered the same pattern. Examples: 15 = strict, 30 = moderate, 45 = lenient
UpdateScheduleAdjustmentConfigDto
enabledWhether schedule adjustment suggestions are enabled
autoApplyEnabledWhether auto-apply is enabled (applies on next manual toggle after threshold)
occurrenceThresholdNumber of occurrences required before auto-apply (1-20)
timeWindowMinutesTime window in minutes for grouping similar override times (5-60)
NotificationChannelSettingsDto
emailEnable or disable email notifications for this group
smsEnable or disable SMS notifications for this group
pushEnable or disable push notifications for this group
telegramEnable or disable Telegram notifications for this group
NotificationGroup
The notification group to configure
NotificationGroupChannelEntryDto
groupThe notification group to configure
Channel settings for this notification group
UpdateNotificationChannelConfigDto
Array of notification group + channel settings pairs to update. Existing groups not listed are preserved.
ToggleInactiveSnapshotDto
enabledSet to true to enable notifications for the daily inactive devices snapshot, false to disable them. Snapshots are always saved to the database regardless of this setting. When disabled, no in-app notifications, emails, or Telegram messages are sent.
ToggleInactiveSnapshotResponseDto
systemIdSystem ID
inactiveDevicesSnapshotEnabledWhether notifications for the daily inactive devices snapshot are now enabled. Snapshots are always saved to the database regardless of this setting.
messageConfirmation message
NotificationSubscriberDto
_idnameemailroleNotificationSubscribersResponseDto
totalAddNotificationSubscriberDto
adminIdAdmin ID to add as a notification email subscriber
UpdateTelegramGroupDto
chatIdTelegram group chat ID to link to this system. Obtain this by adding the bot to your group and calling getUpdates.
CreateTenantDto
tenantNameName of the tenant. Represents a department, unit, or organization within the system.
adminCreationFlag indicating whether an tenant admin should be created, if so send invite.
tenantEmailPrimary email address for tenant contact. Used for notifications and billing communications.
remarksAdditional notes or comments about the tenant. Useful for documenting special arrangements or contact details.
levelFloor number where the tenant is primarily located. Used for organizing tenants within a building.
energyUsageInitial energy usage budget allocated to the tenant in kilowatt-hours. Used for tracking consumption against quotas.
Geographic location details of the tenant. Includes address, city, country, and coordinates for mapping purposes.
tenantTypeTenant type key. Must be a valid type defined for this system via /entity-type/TENANT.
GetTenantDto
_idUnique identifier of the tenant in the database.
tenantNameName of the tenant. Represents a department, unit, or organization within the system.
tenantEmailPrimary email address for tenant contact. Used for notifications and billing communications.
deviceCountTotal count of devices assigned to this tenant. Used for resource allocation tracking.
deviceOnCountNumber of devices currently in ON status for this tenant.
deviceOffCountNumber of devices currently in OFF status for this tenant.
deviceInactiveCountNumber of devices currently in INACTIVE status for this tenant.
totalEnergyUsageEnergy usage budget allocated to the tenant in kilowatt-hours. Tracks consumption against quotas.
Geographic location details of the tenant. Includes address, city, country, and coordinates.
levelFloor number where the tenant is primarily located. Used for organizing tenants within a building.
totalFlaggedCountTotal number of rolling windows this tenant has been flagged. Represents how many different time periods the tenant exceeded thresholds.
totalViolationCountTotal number of individual violations across all time. Sum of all daily violations ever recorded for this tenant.
isMonitoringDisabledWhether surge monitoring is disabled for this tenant. If true, the tenant will not be checked for energy threshold violations.
suspectedDeviceTypesDevice types suspected of causing surge violations for this tenant.
tenantTypeTenant type key
GetTenantsResponseDto
dataArray of GetTenantDto IDs
totalTotal count of items matching filters
pageCurrent page number
sizeItems per page
totalPagesTotal number of pages
PlugType
Hardware type classification of the plug device (PLUG only)
AirconControlBrand
Air conditioner brand (AIRCON_CONTROL only)
GangSwitchState
gangNumberGang number (1-4)
onStatusON/OFF status of this gang switch
labelOptional label/name for this gang switch
SwitchType
Type of appliance the switch controls (SMART_SWITCH only)
DeviceDetailsDto
_idUnique device identifier
deviceNameDevice name
macIdDevice MAC address
deviceTypeDevice type
onStatusCurrent ON/OFF status
systemSystem ID
createdAtDevice creation timestamp
updatedAtLast update timestamp
lastSeenLast time the device was seen/reported
deviceStatusDevice status
systemNameSystem name (only populated in SUPERADMIN /devices endpoint)
Tenant details (populated)
User details (populated)
Room details (populated)
Zone details (populated)
deviceNumberUnique device number for identification
batchNumberManufacturing batch number for tracking production groups
remarksAdditional remarks or notes about the device
locationPhysical location or address where the device is installed
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
isLockedLocked status of the device
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
deviceModelModel name or identifier of the device connected to this plug (PLUG only)
deviceBrandBrand or manufacturer of the device connected to this plug (PLUG only)
plugCategoryCategory classification for the connected device type (PLUG only). See GET /plug-category for valid values.
plugTypeHardware type classification of the plug device (PLUG only)
ecoguardPlugEcoguard power-saving configuration settings reference ID (PLUG only)
realTimePowerReal-time power consumption in watts (PLUG only)
realTimeCurrentReal-time current in amperes (PLUG only)
realTimeVoltageReal-time voltage (PLUG only)
powerFactorPower factor (PLUG only)
totalEnergyUsageTotal energy usage in watt-hours (PLUG only)
ecoguardWattsEcoguard power threshold in watts (PLUG only)
ecoguardMinutesEcoguard time threshold in minutes (PLUG only)
ratedCurrentRated current in amperes (MCB only)
mcbTypeMCB type (MCB only)
tripStatusTrip status - whether the MCB has tripped (MCB only)
distributionBoxDistribution box ID (MCB only)
positionPosition in distribution box (MCB only)
temperatureSet temperature in Celsius (AIRCON_CONTROL only)
modeOperating mode (AIRCON_CONTROL only)
fanFan speed setting (AIRCON_CONTROL only)
swingSwing setting (AIRCON_CONTROL only)
brandAir conditioner brand (AIRCON_CONTROL only)
isIRRemoteWhether this device uses IR remote control (AIRCON_CONTROL only)
numberOfGangsNumber of gangs/buttons on the switch (SMART_SWITCH only)
Individual gang switch states with ON/OFF status (SMART_SWITCH only)
switchTypeType of appliance the switch controls (SMART_SWITCH only)
Weekly and one-time schedule configuration for this device
sensorDataEnvironmental sensor data (ENV_SENSOR only)
GetRoomDto
_idUnique identifier of the room in MongoDB ObjectId format.
nameDisplay name of the room as registered in the system.
deviceCountTotal count of devices currently assigned to this room.
deviceOnCountNumber of devices currently in ON status for this room.
deviceOffCountNumber of devices currently in OFF status for this room.
deviceInactiveCountNumber of devices currently in INACTIVE status for this room.
totalEnergyUsageCumulative energy consumption from all devices in this room, measured in kilowatt-hours (kWh).
tenantIdUnique identifier of the tenant organization that owns this room.
tenantNameName of the tenant organization that owns this room. Included when tenant data is populated.
zoneIdUnique identifier of the zone that has access to this room.
zoneNameName of the zone that has access to this room. Included when zone data is populated.
remarksOptional administrative notes or comments about the room. Used for describing room purpose or equipment.
totalFlaggedCountTotal number of rolling windows this room has been flagged. Represents how many different time periods the room exceeded thresholds.
totalViolationCountTotal number of individual violations across all time. Sum of all daily violations ever recorded for this room.
isMonitoringDisabledWhether surge monitoring is disabled for this room. If true, the room will not be checked for energy threshold violations.
squareMeterFloor area of the room in square meters.
energyIntensityEnergy intensity over the past 30 days in kWh/m²/month. Null if the room has no squareMeter set.
suspectedDeviceTypesDevice types suspected of causing surge violations for this room.
roomTypeRoom type key
GetZoneDto
_idUnique identifier of the zone in MongoDB ObjectId format.
nameFull name of the zone as registered in the system.
emailEmail address of the zone used for authentication and notifications.
deviceCountTotal count of devices currently assigned to this zone across all their rooms.
deviceOnCountNumber of devices currently in ON status for this zone.
deviceOffCountNumber of devices currently in OFF status for this zone.
deviceInactiveCountNumber of devices currently in INACTIVE status for this zone.
totalEnergyUsageCumulative energy consumption from all devices assigned to the zone, measured in kilowatt-hours (kWh).
remarksOptional administrative notes or comments about the zone. Used for internal tracking and context.
tenantNameName of the tenant organization that the zone belongs to. Included when tenant data is populated.
tenantIdUnique identifier of the tenant organization that the zone is associated with.
roomsArray of GetRoomDto IDs
totalFlaggedCountTotal number of rolling windows this zone has been flagged. Represents how many different time periods the zone exceeded thresholds.
totalViolationCountTotal number of individual violations across all time. Sum of all daily violations ever recorded for this zone.
isMonitoringDisabledWhether surge monitoring is disabled for this zone. If true, the zone will not be checked for energy threshold violations.
suspectedDeviceTypesDevice types suspected of causing surge violations for this zone.
zoneTypeZone type key
TenantRelationshipDto
_idUnique identifier of the tenant in the database.
tenantNameName of the tenant. Represents a department, unit, or organization within the system.
energyUsageEnergy usage budget allocated to the tenant in kilowatt-hours. Tracks consumption against quotas.
Array of IoT devices assigned to this tenant. Includes all device types: smart plugs, MCBs, distribution boxes, etc.
roomsArray of GetRoomDto IDs
Array of zones assigned to this tenant. Includes zone accounts with access to tenant resources.
numberOfZonesTotal count of zones assigned to this tenant. Used for resource planning and statistics.
numberOfRoomsTotal count of rooms belonging to this tenant. Used for resource planning and statistics.
numberOfDevicesTotal count of IoT devices assigned to this tenant. Used for resource planning and statistics. Includes all device types: smart plugs, MCBs, distribution boxes, etc.
GetTenantsRelationshipDto
Array of tenants with their complete relationship hierarchy including zones, rooms, and devices.
numberOfTenantsTotal count of tenants in the system. Useful for pagination and statistics.
numberOfZonesTotal count of zones across all tenants in the system. Useful for system-wide statistics.
numberOfRoomsTotal count of rooms across all tenants in the system. Useful for system-wide statistics.
numberOfDevicesTotal count of IoT devices across all tenants in the system. Useful for system-wide statistics. Includes all device types: smart plugs, MCBs, distribution boxes, etc.
RoomEnergyUsageDto
roomIdUnique identifier of the room
roomNameName of the room
energyUsageTotal energy usage in kilowatt-hours (kWh) for the specified period
GetRoomEnergyUsageResponseDto
tenantIdTenant ID for which energy usage was calculated
daysNumber of days the energy usage was calculated over
startDateStart date of the energy usage period (ISO 8601 format)
endDateEnd date of the energy usage period (ISO 8601 format)
List of rooms with their energy usage data
totalRoomsTotal number of rooms found for this tenant
totalEnergyUsageTotal energy usage across all rooms in kWh
UpdateTenantDto
tenantNameName of the tenant. Represents a department, unit, or organization within the system.
tenantEmailPrimary email address for tenant contact. Used for notifications and billing communications.
Geographic location details of the tenant. Includes address, city, country, and coordinates for mapping purposes.
remarksAdditional notes or comments about the tenant. Useful for documenting special arrangements or contact details.
levelFloor number where the tenant is primarily located. Used for organizing tenants within a building.
tenantTypeTenant type key. Must be a valid type defined for this system via /entity-type/TENANT.
CreateZoneDto
nameFull name of the zone to be registered in the system. This will be displayed across the application.
adminCreationFlag indicating whether an tenant admin should be created, if so send invite.
emailUnique email address for the zone account. Required when adminCreation is true. Must not already exist in the system and will be used for authentication.
remarksOptional administrative notes or comments about the zone. Used for internal documentation and context.
zoneTypeZone type key. Must be a valid type defined for this system via /entity-type/ZONE.
LinkMultiplePlugsDto
plugIdsArray of plug identifiers to link to the zone. Used when assigning multiple plugs to a zone at once.
GetZonesResponseDto
Array of zone objects matching the query criteria
totalTotal count of items matching filters
pageCurrent page number
sizeItems per page
totalPagesTotal number of pages
UpdateZoneDto
nameUpdated full name for the zone. This will replace the existing name in the system.
emailUpdated email address for the zone. Must be unique and not already in use by another account.
tenantIdUpdated tenant identifier to reassign the zone to a different organization.
remarksUpdated administrative notes or comments about the zone. Replaces existing remarks if provided.
zoneTypeZone type key. Must be a valid type defined for this system via /entity-type/ZONE.
MonitoringEntityType
Type of entity to start usage surge analysis for
StartAnalysisDto
entityTypeType of entity to start usage surge analysis for
startDateStart date for historical analysis (YYYY-MM-DD format). Must be at least 7 days before end date.
endDateEnd date for historical analysis (YYYY-MM-DD format). Must be at least 7 days after start date.
initialFlagThresholdMinimum number of violations required to flag an entity as initially problematic during analysis
McbMeasurementType
MCB measurement type classification
McbMeasurementTypeBreakdown
measurementTypeMCB measurement type classification
energyKwhTotal energy consumption in kWh for this measurement type
costAmountTotal cost amount for this measurement type
EntityEnergyBreakdown
Energy breakdown by MCB measurement type
totalEnergyKwhTotal energy consumption across all measurement types (kWh)
totalCostTotal cost across all measurement types ($)
periodDaysNumber of days in the analysis period
dailyAverageKwhDaily average energy consumption (kWh)
predictedMonthlyKwhPredicted monthly energy consumption (kWh)
predictedMonthlyCostPredicted monthly cost ($)
EntityAnalysisDetailDto
entityIdEntity ID
entityNameEntity name
averageDailyUsageKwhAverage daily usage during analysis period (kWh)
totalUsageKwhTotal usage during analysis period (kWh)
validDaysCountNumber of days with valid data in analysis period
exceededThresholdWhether this entity exceeded the threshold during analysis
exceedanceCountNumber of times threshold was exceeded during analysis period
predictedMonthlyKwhPredicted monthly usage (kWh) based on average daily usage
predictedYearlyKwhPredicted yearly usage (kWh) based on average daily usage
predictedMonthlyCostPredicted monthly cost based on tariff
predictedYearlyCostPredicted yearly cost based on tariff
Energy breakdown by MCB measurement type
AnalysisStartResponseDto
successOperation success status
messageConfirmation message
calculatedThresholdKwhCalculated threshold in kWh
entitiesAnalyzedNumber of entities analyzed
initialFlaggedCountNumber of initially flagged entities
Detailed analysis for each entity
System-wide energy breakdown by MCB measurement type
SentinelPowerRangeRuleDto
idUnique rule identifier (UUID)
labelHuman-readable label for the suspected device type
minWattsMinimum power threshold in Watts (inclusive)
maxWattsMaximum power threshold in Watts (inclusive)
minDurationMinutesMinimum cumulative minutes device must sustain power in range on a violation day to be classified
CreateSurgeConfigDto
calculatedThresholdKwhCalculated threshold (median) in kWh
manualThresholdKwhManual threshold override (kWh) - takes precedence over calculated threshold
defaultViolationCountDefault violation count to trigger flag
defaultViolationWindowDefault rolling window in days
Sentinel power range rules for suspected device classification
SurgeConfigResponseDto
successOperation success status
entityTypeEntity type
messageSuccess or informational message
Updated configuration
UpdateSystemSurgeConfigDto
calculatedThresholdKwhAuto-calculated threshold (median) in kWh - can be manually adjusted
manualThresholdKwhManual threshold override (kWh) - takes precedence over calculated threshold
defaultViolationCountDefault violation count to trigger flag
defaultViolationWindowDefault rolling window in days
Sentinel power range rules for suspected device classification
UpsertSentinelRulesDto
Full replacement set of sentinel power range rules for this entity type
EntityMetadata
tenantIdTenant ID
tenantNameTenant name
zoneIdZone ID
zoneNameZone name
ViolationResponseDto
_idViolation ID
entityTypeEntity type
entityIdEntity ID
entityNameEntity name
dateViolation date
dailyUsageKwhActual daily usage (kWh)
thresholdKwhThreshold that was exceeded (kWh)
exceedanceKwhAmount exceeded (kWh)
exceedancePercentPercentage exceeded (%)
isFlaggedWhether violation triggered alert
Additional contextual metadata
ViolationsListResponseDto
List of violations
totalTotal number of violations
pageCurrent page number
sizeItems per page
totalPagesTotal number of pages
LatestViolationDto
dateDate of latest violation
dailyUsageKwhDaily usage in kWh
thresholdKwhThreshold in kWh
exceedanceKwhExceedance in kWh
exceedancePercentExceedance percentage
ViolationMetadata
entityNameEntity name (room/tenant/zone)
tenantIdTenant ID if applicable
tenantNameTenant name if applicable
userIdZone ID if applicable
zoneNameZone name if applicable
FlaggedEntityDto
entityIdEntity ID
entityNameEntity name
entityTypeEntity type
violationCountTotal violation count
currentPeriodViolationCountCurrent period violation count
totalFlaggedCountTotal times this entity has been flagged
thresholdKwhThreshold in kWh
firstViolationDateDate of first violation
lastViolationDateDate of last violation
Latest violation details
allViolationDatesAll violation dates
Additional violation metadata
FlaggedEntitiesResponseDto
List of flagged entities
totalTotal number of flagged entities
pageCurrent page number
sizePage size
ViolationClearReason
Primary reason for clearing violations
ClearViolationsDto
reasonPrimary reason for clearing violations
notesAdditional details or context about why violations are being cleared
ClearViolationsResponseDto
successOperation success status
entityTypeEntity type
entityIdEntity ID
deletedCountNumber of violations deleted
messageConfirmation message
ToggleMonitoringDto
isEnabledWhether to enable monitoring (true) or disable it (false)
reasonReason for enabling/disabling monitoring for this entity
MonitoringStatusResponseDto
successOperation success status
entityTypeEntity type
entityIdEntity ID
isMonitoringDisabledWhether entity monitoring is currently disabled
messageConfirmation message
ResetViolationsDto
deleteViolationRecordsWhether to delete all violation records from database (default: false). If false, only counters are reset but historical records are preserved.
ResetCounters
totalFlaggedCountTotal flagged count before reset
currentPeriodViolationCountCurrent period violation count before reset
ResetViolationsResponseDto
successSuccess status
entityTypeEntity type
entityIdEntity ID
Counter values before reset
deletedViolationsNumber of violation records deleted
messageSuccess message
EntityEnergyBreakdownResponseDto
entityIdEntity ID
entityNameEntity name
entityTypeEntity type
startDateAnalysis period start date
endDateAnalysis period end date
MCB measurement type breakdown with cost analysis
EntityCheckResultDto
entityIdEntity ID
entityNameEntity name
entityTypeType of entity
dailyUsageKwhDaily usage in kWh
thresholdKwhThreshold in kWh
violatedWhether this entity violated the threshold
currentPeriodViolationCountCurrent period violation count after check
totalFlaggedCountTotal lifetime flagged count after check
DailySurgeCheckResultDto
systemIdSystem ID that was checked
checkDateCheck date
totalEntitiesCheckedTotal entities checked across all types
totalViolationsDetectedTotal violations detected across all types
Detailed results for each entity checked
summaryByTypeSummary by entity type
FlaggedEntityDigestResultDto
entityIdEntity ID
entityNameEntity name
currentPeriodViolationCountCurrent period violation count
totalFlaggedCountTotal lifetime flagged count
thresholdKwhThreshold in kWh
lastViolationDateLast violation date
SurgeDigestResultDto
systemIdSystem ID
entityTypeEntity type for this digest
startDateRolling window period start date
endDateRolling window period end date
rollingWindowDaysRolling window in days
totalFlaggedEntitiesTotal flagged entities in this digest
totalViolationsTotal violations across all flagged entities
List of flagged entities included in digest
notificationIdNotification ID created for this digest
CronJobType
Type of cron job to schedule
ScheduleCronJobRequestDto
jobTypeType of cron job to schedule
ScheduleCronJobResponseDto
jobTypeType of cron job
scheduleNameAWS EventBridge schedule name
messageSuccess message
DeleteCronJobRequestDto
jobTypeType of cron job to delete
CronJobStatusResponseDto
jobTypeType of cron job
isEnabledWhether the cron job is currently scheduled and enabled
messageStatus message
scheduleNameAWS EventBridge schedule name (if exists)
scheduleExpressionSchedule expression (if exists)
stateCurrent state of the schedule (if exists)
GetAdminsDto
adminsArray of GetAdminDto IDs
totalTotal count of admin accounts in the database. Used for pagination calculations.
UpdateAdminRoleDto
roleThe new administrative role to assign to the admin. Determines the level of access and permissions within the system.
associatedZoneOptional zone ID to associate this admin with a specific zone account
associatedTenantOptional tenant ID to associate this admin with a specific tenant
UpdateAdminDto
nameFull name of the admin user. Used for identification and display purposes within the system.
emailEmail address of the admin user. Used for authentication and system notifications.
passwordNew password for the admin account. Must be at least 6 characters long and will be hashed before storage.
roleAdministrative role determining the level of access and permissions within the system.
LinkSystemToAdminDto
systemIdUnique identifier of the system to be linked to the admin account. This establishes a management relationship between the admin and the system.
UnlinkSystemToAdminDto
systemIdUnique identifier of the system to be unlinked from the admin account. This removes the management relationship between the admin and the system.
GetDevicesResponseDto
Array of devices with their full details. Each device includes base fields plus type-specific fields based on deviceType.
totalTotal number of devices matching the criteria
pageCurrent page number
sizeNumber of items per page
totalPagesTotal number of pages
DeviceHistoryItem
_idUnique identifier for the history entry
onStatusStatus of the device (ON/OFF)
triggerSourceSource that triggered the status change
createdAtTimestamp when the status change occurred
temperatureTemperature setting (Aircon Control only) - present when device is an aircon control
modeOperation mode (Aircon Control only) - present when device is an aircon control
fanFan speed (Aircon Control only) - present when device is an aircon control
swingSwing setting (Aircon Control only) - present when device is an aircon control
brandBrand of AC (Aircon Control only) - present when device is an aircon control
Gang switch states (Smart Switch only) - present when device is a smart switch, shows the state of each gang at the time of this history entry
GetDeviceHistoryDto
Array of device history entries
totalTotal number of history entries
MultipleDevicesConfigurationDto
deviceTypeType of devices to configure
deviceIdsArray of unique device identifiers from IoT devices to configure in batch
ssidNetwork SSID (Wi-Fi name) to configure for all selected devices
passwordWi-Fi network password to configure for all selected devices
systemNameSystem name to assign to all selected devices for organizational grouping
DeviceConfigurationDto
deviceTypeType of device to configure (PLUG, MCB, ENV_SENSOR). Determines which device will receive the configuration.
ssidNetwork SSID (Wi-Fi name) that the device should connect to for internet access
passwordWi-Fi network password required for the device to authenticate and connect
systemNameName of the system that the device belongs to for organizational grouping
ErrorLog
_idError log document ID
errorTypeType or code of the error
errorTitleType or code of the error
errorMessageDetailed error message
createdAtDate Time of the Creation
macIdDevice MAC Address
deviceTypeType of device
deviceIdDevice ID
systemIdTagged System
GetErrorHistoryDto
Array of error log records for devices matching the query
totalTotal count of error logs available for pagination purposes
CreateWhiteListedDevicesDto
macIdsArray of unique MAC address identifiers from IoT devices to add to the whitelist
deviceTypeType of device
batchNumberManufacturing batch number for tracking device production groups and quality control
chipModelHardware chip model identifier used in the devices (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number installed on the devices in semantic versioning format
WhiteList
_idPrimary ID of the MacId
macIdMac ID of the device (from IoT device)
deviceTypeType of device
batchNumberBatch Number of the device
chipModelChip Model of the device
versionNumberVersion number of the device
deviceNumberAuto-incremented Device Number for whitelisted devices
adminCreatedName of the admin who created the whitelist entry
createdAtDate Time of the Creation
GetWhitelistedDevicesDto
Array of devices that are approved and registered in the whitelist
totalTotal count of whitelisted devices for pagination and tracking
GetIsDeviceWhiteListedDto
isWhiteListedBoolean flag indicating whether the device is approved and present in the whitelist
BulkRemoveWhitelistDto
idsArray of whitelist entry IDs to remove
ManufacturerRegisterDeviceDto
macIdMAC address of the device
deviceTypeType of device being registered
batchNumberManufacturing batch number
chipModelHardware chip model of the device
versionNumberFirmware version number installed on the device
adminCreatedName of the manufacturer or person registering the device. Defaults to "Manufacturer" if not provided.
ManufacturerDeviceResponseDto
macIdMAC address of the device
deviceNumberAuto-assigned device number for this device
alreadyExistedTrue if the MAC was already registered and this was a lookup, false if newly registered
ManufacturerPlugStatusDto
_idDevice ID
macIdMAC address of the device
deviceNumberUnique device number for identification
onStatusCurrent on/off status of the device
ManufacturerSystemPlugsResponseDto
List of plug devices in the system
totalTotal number of plug devices
MultipleDevicesChangeSystemDto
deviceIdsArray of unique device identifiers (plugs or MCBs) to reassign to a different system
newSystemIdUnique identifier of the target system to reassign all selected devices to
UpdateMultipleDevicesRelationshipsDto
deviceIdsArray of unique device identifiers to update relationships for
tenantIdUnique identifier of the tenant to assign the devices to. Pass null to remove the tenant relationship.
zoneIdUnique identifier of the zone to assign ownership of the devices to. Pass null to remove the zone relationship.
roomIdUnique identifier of the room to assign the devices to. Pass null to remove the room relationship.
UpdateDeviceBaseDto
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
DeviceUpdateItem
deviceIdMongoDB ID of the device to update
Fields to update on the device
BulkUpdateDevicesDto
Array of device update operations to perform in a single batch request
UpdateDevicesLockStatusDto
deviceIdsArray of device IDs to lock or unlock
isLockedLock status to set. True to lock devices, false to unlock.
FailedDeviceLockUpdateDto
deviceIdDevice ID that failed to update
reasonReason for failure
UpdateDevicesLockStatusResponseDto
successCountNumber of devices successfully updated
failedCountNumber of devices that failed to update
successfulDeviceIdsList of device IDs that were successfully updated
List of devices that failed to update with reasons
UpdateDevicesSpareStatusDto
deviceIdsArray of device IDs to mark as spare or non-spare
isSpareSpare status to set. True to mark as spare, false to unmark.
UpdateDevicesRelationshipTenantDto
deviceIdsArray of unique device identifiers to update relationships for
zoneIdUnique identifier of the zone to assign ownership of the devices to within the tenant
roomIdUnique identifier of the room to assign the devices to for location tracking
UpdateDevicesRelationshipZoneDto
deviceIdsArray of unique device identifiers to update room assignment for
roomIdUnique identifier of the room to assign the devices to for location tracking
MultipleDevicesResetSystemVariablesDto
systemNameName of the system containing the devices whose variables should be reset
deviceTypeType of device to reset (PLUG, MCB, ENV_SENSOR). Determines which devices will receive the reset command.
deviceIdsArray of unique device identifiers (MAC IDs) to reset, or empty to reset all devices in the system
MultipleDevicesCalibrationDto
systemNameName of the system containing the devices to calibrate for batch processing
deviceTypeType of device to calibrate (PLUG, MCB, ENV_SENSOR). Determines which devices will receive calibration data.
voltageMultiplierCalibration multiplier to adjust voltage sensor readings for accuracy correction
voltageOffsetCalibration offset value in volts to adjust voltage sensor baseline readings
currentMultiplierCalibration multiplier to adjust current sensor readings for accuracy correction
currentOffsetCalibration offset value in amperes to adjust current sensor baseline readings
powerMultiplierCalibration multiplier to adjust power measurement calculations for accuracy
powerOffsetCalibration offset value in watts to adjust power measurement baseline
deviceIdsArray of unique device identifiers to apply calibration settings to, or empty to calibrate all devices in the system
InactiveDeviceDto
_idDevice document ID
macIdDevice MAC ID (unique identifier)
deviceNumberDevice number identifier
deviceNameDevice display name
deviceTypeType of device
lastSeenLast time the device sent a heartbeat (last seen timestamp)
inactiveDurationDuration the device has been inactive in milliseconds
inactiveDurationFormattedDuration the device has been inactive in human-readable format
tenantIdTenant ID that owns this device
tenantNameTenant name that owns this device
GetInactiveDevicesDto
Array of inactive devices with their details
totalTotal count of inactive devices found
retrievedAtTimestamp when this data was retrieved
SaveInactiveSnapshotResponseDto
snapshotIdSnapshot document ID
systemIdSystem ID this snapshot belongs to
totalInactiveDevicesNumber of inactive devices captured in this snapshot
snapshotDateTimestamp when the snapshot was taken
messageMessage confirming the snapshot was saved
InactiveDeviceSnapshot
_idSnapshot document ID
systemSystem ID reference
Array of inactive devices with their details
totalTotal count of inactive devices
retrievedAtTimestamp when this data was retrieved
createdAtTimestamp when this snapshot was created
updatedAtTimestamp when this snapshot was last updated
referenceDateOptional reference date used for duration calculation
GetInactiveSnapshotsDto
Array of inactive device snapshots
totalTotal count of snapshots found
DeviceCountDto
deviceCountTotal number of devices registered in the system across all statuses
deviceOnCountNumber of devices currently in ON status and actively consuming power
deviceOffCountNumber of devices currently in OFF status and not consuming power
deviceInactiveCountNumber of devices marked as inactive or not communicating with the system
deviceSpareCountNumber of spare devices (excluded from total, on, off, and inactive counts)
DeviceTypeBreakdownDto
PLUGNumber of PLUG devices in the system
MCBNumber of MCB (Miniature Circuit Breaker) devices in the system
ENV_SENSORNumber of ENV_SENSOR (Environmental Sensor) devices in the system
SMART_SWITCHNumber of SMART_SWITCH devices in the system
AIRCON_CONTROLNumber of AIRCON_CONTROL (Air Conditioning Controller) devices in the system
WATER_METERNumber of WATER_METER devices in the system
totalTotal number of devices in the system
ChangeDeviceSystemDto
newSystemIdUnique identifier of the system to reassign the device to for organizational management
ToggleDeviceStatusDto
deviceIdUnique identifier of the device to be toggled
onStatusDesired power state. Use ON to turn the device on (all gangs for SmartSwitch), or OFF to turn it off (all gangs for SmartSwitch).
BulkToggleDeviceDto
deviceIdsArray of device IDs to toggle
onStatusDesired power state for all devices. Use ON to turn all devices on (all gangs for SmartSwitch), or OFF to turn all devices off (all gangs for SmartSwitch).
BulkDeleteDeviceDto
deviceIdsArray of device IDs to delete
ManualBlacklistDto
blacklistWhether to blacklist (true) or remove blacklist (false)
BulkManualBlacklistDto
deviceIdsArray of device IDs to blacklist/unblacklist
blacklistWhether to blacklist (true) or remove blacklist (false)
EnvironmentType
Environment type to set for the devices. STAGING for staging environment, PRODUCTION for production environment.
ChangeEnvironmentDto
deviceIdsArray of device IDs to change environment for
setEnvironmentEnvironment type to set for the devices. STAGING for staging environment, PRODUCTION for production environment.
BulkUpdateEnergyThresholdsDto
deviceIdsIDs of energy devices (Plugs or MCBs) to update
voltageMaxMax Threshold voltage reading in volts
currentMaxMax Threshold current reading in amps
powerMaxMax Threshold power reading in watts
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications of the same type
UpdateEnergyDeviceThresholdDto
voltageMaxMax Threshold voltage reading in volts
currentMaxMax Threshold current reading in amps
powerMaxMax Threshold power reading in watts
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications of the same type
EnergyThresholdBaselineDto
voltageMinMinimum voltage reading (V)
voltageMaxMaximum voltage reading (V)
currentMinMinimum current reading (A)
currentMaxMaximum current reading (A)
powerMinMinimum power reading (W)
powerMaxMaximum power reading (W)
EnvironmentSensorThresholdBaselineDto
temperatureMinMinimum temperature reading (°C)
temperatureMaxMaximum temperature reading (°C)
carbonDioxideMinMinimum CO2 reading (ppm)
carbonDioxideMaxMaximum CO2 reading (ppm)
formaldehydeMinMinimum formaldehyde reading (ppm)
formaldehydeMaxMaximum formaldehyde reading (ppm)
humidityMinMinimum humidity (%)
humidityMaxMaximum humidity (%)
fineParticulateMatterMinMinimum PM2.5 reading (µg/m³)
fineParticulateMatterMaxMaximum PM2.5 reading (µg/m³)
coarseParticulateMatterMinMinimum PM10 reading (µg/m³)
coarseParticulateMatterMaxMaximum PM10 reading (µg/m³)
totalVolatileOrganicCompoundsMinMinimum TVOC reading (ppm)
totalVolatileOrganicCompoundsMaxMaximum TVOC reading (ppm)
soundLevelMinMinimum sound level (dB)
soundLevelMaxMaximum sound level (dB)
WaterMeterThresholdBaselineDto
flowRateMinMinimum flow rate (L/min)
flowRateMaxMaximum flow rate (L/min)
pressureMinMinimum pressure (bar)
pressureMaxMaximum pressure (bar)
temperatureMinMinimum temperature (°C)
temperatureMaxMaximum temperature (°C)
ThresholdBaselineResponseDto
deviceIdDevice ID
deviceTypeDevice type
periodStartStart date of the baseline period
periodEndEnd date of the baseline period
dataPointCountNumber of data points used to calculate the baseline
messageWarning message when insufficient data (< 14 days) was available for the baseline calculation
Energy device baseline (Plug/MCB)
Environment sensor baseline
Water meter baseline
BulkThresholdBaselineRequestDto
deviceIdsIDs of devices to calculate threshold baselines for
FailedThresholdBaselineDto
deviceIdDevice ID that failed to generate a baseline
reasonReason for failure
BulkThresholdBaselineResponseDto
successCountNumber of devices for which baselines were successfully generated
failedCountNumber of devices for which baseline generation failed
Successfully generated baselines
Devices that failed baseline generation with reasons
UpdateInactivityNotificationDto
enabledEnable or disable inactivity notifications for this device
ClaimTokenResponseDto
claimTokenEncrypted claim token for device
claimUrlFull URL for claiming the device
PrintQrResponseDto
deviceNumberAuto-assigned device number for this device
claimUrlFull URL for claiming the device — encode this as QR
ClaimDeviceResponseDto
messageSuccess message
deviceIdDevice ID
deviceNameDevice name
deviceNumberDevice number
deviceTypeDevice type
systemIdSystem ID the device belongs to
zoneIdZone ID the device was assigned to
zoneNameZone name the device was assigned to
tenantIdTenant ID the device was assigned to (if any)
tenantNameTenant name the device was assigned to (if any)
CreateNotificationDto
titleTitle of the notification
messageMessage of the notification
systemNotification for a specific System
typeType of the notification
recieveTypeReceive type of the notification
deviceNotification for a specific Device (optional - if not provided, finds system-level admin)
isSystemLevelWhether this is a system-level notification (visible to all admins in the system)
SearchQueryResultDto
resultsSearch results
totalTotal number of results
ResolveAllNotificationsResponseDto
resolvedCountNumber of notifications marked as resolved
SingleScheduleEntryDto
actionAction type to perform at the scheduled date-time(s). For simple ON/OFF or complex actions like SET_TEMPERATURE.
dateTimeSingle scheduled date and time in ISO 8601 format when the one-time action should execute. Cannot be used with startDateTime/endDateTime. Must be a future timestamp.
startDateTimeStart date and time of the schedule range in ISO 8601 format. Must be used with endDateTime. Cannot be used with dateTime. Creates daily timers between start and end dates (inclusive) at the specified time.
endDateTimeEnd date and time of the schedule range in ISO 8601 format. Must be used with startDateTime. Cannot be used with dateTime. Creates daily timers between start and end dates (inclusive) at the specified time.
actionValueOptional value for actions that require it (e.g., temperature value for SET_TEMPERATURE, brightness for SET_BRIGHTNESS). Required for certain action types.
ruleNameAWS EventBridge rule name associated with this schedule entry. Used for managing and updating the schedule.
DailyScheduleEntryDto
timeTime when the scheduled action should occur in 24-hour format (HH:MM). Applied to recurring weekly schedules.
actionAction type to perform at the scheduled time. For simple ON/OFF or complex actions like SET_TEMPERATURE.
actionValueOptional value for actions that require it (e.g., temperature value for SET_TEMPERATURE, brightness for SET_BRIGHTNESS). Required for certain action types.
DeviceWeeklyScheduleDto
Array of one-time scheduled actions that occur at specific date-times. These schedules execute once and are automatically removed.
Array of scheduled actions for Monday. These execute weekly at specified times.
Array of scheduled actions for Tuesday. These execute weekly at specified times.
Array of scheduled actions for Wednesday. These execute weekly at specified times.
Array of scheduled actions for Thursday. These execute weekly at specified times.
Array of scheduled actions for Friday. These execute weekly at specified times.
Array of scheduled actions for Saturday. These execute weekly at specified times.
Array of scheduled actions for Sunday. These execute weekly at specified times.
DeviceSingleScheduleDto
Array of one-time scheduled actions with specific date-times. These schedules execute once and are automatically removed after execution.
EditDeviceSingleTimerDto
ruleNameAWS EventBridge rule name of the one-time timer to edit. Used to identify which schedule to update.
dateTimeUpdated scheduled date and time for the timer in ISO 8601 format. Must be a future timestamp.
actionUpdated action type to perform at the scheduled time. Replaces the existing action in the timer.
actionValueOptional value for actions that require it (e.g., temperature value for SET_TEMPERATURE, brightness for SET_BRIGHTNESS). Required for certain action types.
DeleteDeviceSingleTimerDto
ruleNameAWS EventBridge rule name of the one-time timer to delete. Used to identify which schedule to remove.
MergeMode
Defines how schedules should be merged. REPLACE: Clear all existing schedules and set new ones (default). MERGE: Add new schedules to existing ones, updating duplicates. APPEND: Add new schedules without modifying existing ones.
MassDevicesScheduleDto
deviceIdsArray of unique device identifiers to apply the schedule configuration to. Each device will receive the same schedule.
Schedule configuration containing weekly recurring and one-time schedules to apply to multiple devices.
mergeModeDefines how schedules should be merged. REPLACE: Clear all existing schedules and set new ones (default). MERGE: Add new schedules to existing ones, updating duplicates. APPEND: Add new schedules without modifying existing ones.
MassDevicesSingleScheduleDto
deviceIdsArray of unique device identifiers to apply the one-time schedules to. Each device will receive the same schedule.
Array of one-time scheduled actions with specific date-times to apply to multiple devices.
DeviceScheduleInfo
ruleNameAWS EventBridge rule name associated with this device schedule. Used for identifying and managing the schedule.
deviceIdUnique identifier of the device in MongoDB ObjectId format.
deviceNameDisplay name of the device for identification purposes in the UI.
MassEditDeviceSingleTimerDto
Array of device details with EventBridge rule names for the one-time timers to batch edit. All specified timers will be updated with the same new schedule.
newDateTimeNew scheduled date and time to apply to all specified timers. Must be a future timestamp in ISO 8601 format.
newActionNew action type to apply to all specified timers at the scheduled time. Replaces existing actions.
newActionValueOptional value for the new action (e.g., temperature for SET_TEMPERATURE, brightness for SET_BRIGHTNESS). Required for certain action types.
MassEditDeviceWeeklyTimerDto
Array of device details with EventBridge rule names for the recurring weekly timers to batch edit. All specified timers will be updated.
newTimeNew time in 24-hour format (HH:MM) to apply to all specified weekly timers. Must be valid time between 00:00 and 23:59.
newActionNew action type to apply to all specified weekly timers at the scheduled time. Replaces existing actions.
newActionValueOptional value for the new action (e.g., temperature for SET_TEMPERATURE, brightness for SET_BRIGHTNESS). Required for certain action types.
daysOfWeekOptional filter to only edit timers on specific days of the week. If provided, only rules matching these days will be updated. If omitted, all provided rules will be updated (backward compatible).
MassDeleteDeviceTimerDto
Array of device details with EventBridge rule names for the timers to batch delete. Supports both one-time and recurring weekly schedules.
GroupedRecurringSchedule
timeScheduled time in 24-hour format (HH:MM) when the recurring action executes. Shared by all devices in this group.
actionAction type to perform at the scheduled time. All devices in this group will execute the same action.
daysOfWeekArray of weekday names when this recurring schedule is active. Schedule repeats weekly on these days.
deviceCountTotal number of devices that share this identical recurring schedule pattern.
Array of device details with their EventBridge rule names. Each device has this same recurring schedule configured.
actionValueOptional value for actions that require it (e.g., temperature, brightness). All devices in this group will use the same value.
GroupedOneTimeSchedule
dateTimeScheduled date and time when this one-time action will execute. Shared by all devices in this group.
actionAction type to perform at the scheduled date-time. All devices in this group will execute the same action.
deviceCountTotal number of devices that share this identical one-time schedule configuration.
Array of device details with their EventBridge rule names. Each device has this same one-time schedule configured.
actionValueOptional value for actions that require it (e.g., temperature, brightness). All devices in this group will use the same value.
GetSystemGroupedSchedulesDto
Array of recurring weekly schedules grouped by time and action. Shows which devices share the same recurring schedule pattern.
Array of one-time schedules grouped by date-time and action. Shows which devices share the same one-time schedule.
totalDevicesTotal count of all schedulable devices in the system (includes devices with and without schedules). Only counts device types that support scheduling.
devicesWithSchedulesCount of devices that have at least one active schedule configured. Used to calculate scheduling adoption rate.
AdjustmentType
Type of adjustment suggested
DayOfWeek
Which day(s) this adjustment applies to
ScheduleMapDto
Monday schedule entries
Tuesday schedule entries
Wednesday schedule entries
Thursday schedule entries
Friday schedule entries
Saturday schedule entries
Sunday schedule entries
ScheduleAdjustmentStatus
Status of this suggestion
ScheduleAdjustmentSuggestionDto
_idSuggestion ID
deviceDevice ID
deviceTypeDevice type
systemSystem ID
adjustmentTypeType of adjustment suggested
affectedDaysWhich day(s) this adjustment applies to
overrideTimeTime when user triggered this override
overrideActionWhat user did
Current schedule before adjustment
Suggested adjusted schedule
statusStatus of this suggestion
occurrenceCountNumber of times this pattern was detected
firstOccurrenceFirst time this pattern was detected
lastOccurrenceMost recent time this pattern was detected
occurrenceTimesAll override times that contributed to this pattern
earliestOverrideTimeEarliest time from all occurrences (used for adjustment)
latestOverrideTimeLatest time from all occurrences
timeRangeMinutesTime range in minutes (latest - earliest)
confidenceScoreConfidence score 0-1 based on occurrences and time range
createdAtWhen this suggestion was created
updatedAtWhen this suggestion was last updated
deviceNameDevice name
roomNameRoom name the device belongs to
reviewedAtWhen user responded to this
reviewedByUserUser who reviewed this
estimatedHoursSavedPerWeekEstimated hours saved per week if suggestion is applied (based on schedule diff across affected days)
estimatedKwhSavedPerWeekEstimated kWh saved per week based on recent 14-day average daily usage
estimatedCostSavedPerWeekEstimated cost saved per week in dollars
GetSystemSuggestionsResponseDto
totalTotal number of suggestions
Suggestions currently being monitored (below threshold)
Suggestions ready for manual review (hit threshold)
Suggestions ready for auto-apply on next toggle
Suggestions that were accepted and applied
Suggestions that were rejected
Suggestions that were automatically applied
Suggestions where auto-apply failed
GetDeviceSuggestionsResponseDto
totalTotal number of suggestions
List of suggestions for the device
AcceptSuggestionResponseDto
messageSuccess message
The accepted suggestion
deviceIdDevice ID
deviceNameDevice name
RejectSuggestionResponseDto
messageSuccess message
The rejected suggestion
CreateFirmwareDto
versionNumberSemantic version number for the firmware release. Must follow the format major.minor.patch (e.g., 1.0.0).
chipModelTarget chip model for this firmware build. Determines which plug devices can receive this firmware.
deviceTypeType of device this firmware is intended for (e.g., PLUG, MCB, ENV_SENSOR).
remarksOptional release notes or comments about this firmware version. Used to document changes and fixes.
fileFirmware binary file to upload. Must be a valid firmware binary for the specified chip model. Maximum file size: 10MB.
ReuploadFirmwareDto
fileUpdated firmware binary file to upload. Must be a valid firmware binary for the existing chip model. Maximum file size: 10MB.
remarksOptional updated release notes or comments about this firmware version. Used to document changes and fixes.
GetFirmwareResponseDto
_idPrimary ID of the Firmware
adminCreatedName of the admin who created the firmware entry
versionNumberFirmware version number
chipModelChip Model of the Device
deviceTypeType of device this firmware is intended for
createdAtTimestamp when the firmware was created
updatedAtTimestamp when the firmware was last updated
adminLastModifiedName of the admin who last modified/re-uploaded the firmware
remarksRemarks or notes about the firmware
MassSendOtaDto
versionNumberFirmware version number to push to all matching plugs. Must exist in the firmware repository.
chipModelTarget chip model to filter which plugs receive the OTA update. Only plugs with matching chip model will be updated.
deviceTypeType of device this firmware is intended for (e.g., PLUG, MCB, ENV_SENSOR).
targetVersionOptional filter to target only plugs currently running this specific firmware version. Used for targeted upgrades.
SendOtaDto
deviceIdsArray of unique plug identifiers to receive the OTA firmware update. Each plug will be notified via MQTT.
versionNumberFirmware version number to push to the specified devices. Must exist in the firmware repository.
chipModelTarget chip model for firmware compatibility validation. Ensures plugs receive compatible firmware.
deviceTypeType of device this firmware is intended for (e.g., PLUG, MCB, ENV_SENSOR).
targetVersionOptional filter to verify plugs are running this specific firmware version before updating. Used for validation.
MassSendOtaRollbackDto
chipModelChip Model of the Plug
deviceTypeType of device this firmware is intended for (e.g., PLUG, MCB, ENV_SENSOR).
SendOtaRollbackDto
deviceIdsList of unique Plug IDs
chipModelChip Model of the Plug
deviceTypeType of device this firmware is intended for (e.g., PLUG, MCB, ENV_SENSOR).
GetFirmwareListDto
Array of firmware objects containing version details, chip models, and metadata. Sorted by creation date. File information is excluded for security.
totalTotal count of firmware records in the system matching the query filters. Used for pagination.
pageCurrent page number
sizeNumber of items per page
totalPagesTotal number of pages
GenerateDownloadUrlResponseDto
urlClean OTA download URL without embedded token
jwtTokenJWT token for Authorization header (devices should send as Bearer token)
VersionDistributionDto
versionNumberFirmware version number
deviceCountNumber of devices with this firmware version
ChipModelDistributionDto
chipModelChip model
totalDevicesTotal number of devices for this chip model
Distribution of firmware versions for this chip model
DeviceTypeFirmwareDistributionDto
deviceTypeDevice type
totalDevicesTotal number of devices for this device type
Distribution of firmware versions grouped by chip model
GetFirmwareVersionDistributionDto
Firmware version distribution grouped by device type
totalTotal number of device types
DeviceFirmwareInfoDto
_idDevice ID
macIdDevice MAC ID
deviceTypeDevice type
onStatusDevice status
systemNameSystem name
systemIdSystem ID
deviceNameDevice name
deviceNumberDevice number
chipModelChip model
versionNumberFirmware version number
lastSeenLast time the device was seen/reported
autoUpdateAttemptsNumber of auto-update attempts for this device
autoUpdateBlacklistedWhether the device is automatically blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether the device is manually blacklisted from auto-updates by admin
GetDeviceFirmwareListDto
List of devices with firmware information
totalTotal number of devices matching the filters
pageCurrent page number
sizeNumber of items per page
totalPagesTotal number of pages
CreateAutoUpdatePolicyDto
enabledEnable or disable the auto-update policy
deviceTypeTarget device type for auto-updates
chipModelTarget chip model for auto-updates
targetVersionTarget firmware version to auto-update devices to
sourceVersionsList of source firmware versions to update FROM. If empty or not provided, updates all versions. If specified, only devices on these versions will be auto-updated.
maxRetriesMaximum number of OTA attempts per device before blacklisting
AutoUpdatePolicyResponseDto
_idPrimary ID of the policy
enabledEnable or disable the auto-update policy
deviceTypeTarget device type for auto-updates
chipModelTarget chip model for auto-updates
targetVersionTarget firmware version to auto-update devices to
maxRetriesMaximum number of OTA attempts per device before blacklisting
createdByAdmin email/ID who created this policy
lastModifiedByAdmin email/ID who last modified this policy
createdAtTimestamp when the policy was created
updatedAtTimestamp when the policy was last updated
sourceVersionsList of source firmware versions to update FROM. If empty, updates all versions.
AutoUpdateAffectedDeviceDto
_idPrimary ID of the device
deviceNameDevice name
macIdDevice MAC address
deviceTypeDevice type
chipModelChip model
versionNumberCurrent firmware version
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from further auto-update attempts
System information
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
AutoUpdateAffectedDevicesListDto
List of devices affected by the auto-update policy
totalTotal number of devices matching the policy criteria
policyTargetVersionTarget firmware version from the policy
needsUpdateCountNumber of devices that need updates (version mismatch, not blacklisted)
MigratePlugDto
targetPlugIdThe ID of the target plug
sourcePlugIdThe ID of the source plug
hasPreviousSetupIndicates if the source plug has previous setup
EcoguardPlug
_idPrimary ID of the EcoGuard
ecoguardEnabledEcoguard Timer
ecoguardTimerIdle Timeout Duration of the Ecoguard (Minutes)
ecoguardIdleThresholdEcoguard Idle Threshold
Plug
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
plugCategoryPlug category name. See GET /plug-category for all valid values.
plugTypeType of Plug
energyUsageRecommendationReportEnergy Usage Recommendation Report
Ecoguard of the system
migratedToPlug to which this plug has been migrated
deviceModelModel of the device plugged into this smart plug
deviceBrandBrand of the device plugged into this smart plug
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
voltageMaxMax Threshold voltage reading in volts
currentMaxMax Threshold current reading in amps
powerMaxMax Threshold power reading in watts
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications of the same type
PlugUpdateItem
plugIdMongoDB ID of the plug to update
plugCategoryCategory of the device connected to this plug. See GET /plug-category for valid values.
deviceBrandBrand of the device connected to this plug
deviceModelModel of the device connected to this plug
remarksAdditional remarks or notes about the plug
BulkUpdatePlugsDto
Array of plug update operations to perform in a single batch
AiCategorizePlugsRequestDto
plugIdsArray of plug IDs to categorize using AI
UpdatePlugDto
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
plugTypeType of Plug
plugCategoryType of Plug Category
deviceModelModel identifier of the Plug
deviceBrandBrand of the Plug device
batchNumberBatch Number of the Plug
FilteredPlugDto
_idUnique database identifier of the device document in the system
macIdUnique identifier assigned to the device by the IoT hardware (MAC ID)
deviceNameFriendly name for the device for easy identification
onStatusCurrent operational status of the device (ON, OFF, INACTIVE, or ERROR)
totalEnergyUsageCumulative total energy consumption in kilowatt-hours (kWh) since device installation
tenantIdUnique identifier of the tenant organization that owns this device
tenantNameName of the tenant organization that owns this device
zoneIdUnique identifier of the zone that this device is assigned to
zoneNameName of the zone that this device is assigned to
roomIdUnique identifier of the room where this device is physically located
roomNameName of the room where this device is physically located
dbIdUnique identifier of the distribution box that this device is connected to (for MCBs)
dbNameName of the distribution box that this device is connected to (for MCBs)
systemIdUnique identifier of the system that this device belongs to
systemNameName of the system that this device belongs to
realTimePowerReal-time power consumption in watts (W) measured by the device
realTimeCurrentReal-time current draw in amperes (A) measured by the device
ssidNetwork SSID (Wi-Fi name) that the device is currently connected to
plugTypeHardware type classification of the plug device (e.g., ADAPTER, EXTENSION)
plugCategoryCategory classification for the connected device type. See GET /plug-category for valid values.
deviceNumberAuto-incremented sequential number for tracking device registration order
batchNumberManufacturing batch number for tracking production groups and quality control
chipModelHardware chip model identifier used in the device (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number currently running on the device
Weekly and one-time schedule configuration for automated device control
lastSeenTimestamp when the device last communicated with the system
isLockedLock status indicating if the device is locked
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
Ecoguard power-saving feature configuration and settings for this plug
GetPlugsResponseDto
Array of plug device objects matching the query criteria
totalTotal count of items matching filters
pageCurrent page number
sizeItems per page
totalPagesTotal number of pages
PlugCategoryEnergyBreakdownDto
plugCategoryCategory classification of the plug device. See GET /plug-category for valid values.
totalEnergyUsageTotal energy usage (kWh) for all plugs in this category
PlugCategoriesBreakdownDto
plugCategoryCategory classification of the plug device. See GET /plug-category for valid values.
countTotal count of plugs belonging to this specific category in the system
CreateEcoguardPlugDto
ecoguardEnabledEnable or disable the Ecoguard automatic power-off feature for idle detection. When enabled, the plug monitors power consumption.
ecoguardTimerDuration in minutes before the plug automatically turns off after detecting idle power usage. Applied when power stays below threshold.
ecoguardIdleThresholdPower consumption threshold in watts that defines idle state. When usage falls below this value, the idle timer starts counting.
MCBPoles
Number of poles in the MCB
MCB
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
mcbTypeType of MCB
mcbPolesNumber of poles in the MCB
ratedCurrentRated current capacity in amperes
ratedVoltageRated voltage in volts
realTimeVoltageReal-time voltage in volts
powerFactorPower factor (0-1)
Parent distribution box containing this MCB
isReversePowerWhether power/current readings should be reversed (made absolute). When true, negative values are converted to positive.
deviceModelModel name or identifier of the device
deviceBrandBrand or manufacturer of the device
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
measurementTypeType of load/circuit being measured by this MCB
digitalTwinXX coordinate for digital twin SVG positioning
rowLineRow line number (1-6) the MCB is connected to
slotNumberSlot/position number on the busbar
voltageMaxMax Threshold voltage reading in volts
currentMaxMax Threshold current reading in amps
powerMaxMax Threshold power reading in watts
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications of the same type
FilteredMcbDto
_idUnique database identifier of the device document in the system
macIdUnique identifier assigned to the device by the IoT hardware (MAC ID)
deviceNameFriendly name for the device for easy identification
onStatusCurrent operational status of the device (ON, OFF, INACTIVE, or ERROR)
totalEnergyUsageCumulative total energy consumption in kilowatt-hours (kWh) since device installation
tenantIdUnique identifier of the tenant organization that owns this device
tenantNameName of the tenant organization that owns this device
zoneIdUnique identifier of the zone that this device is assigned to
zoneNameName of the zone that this device is assigned to
roomIdUnique identifier of the room where this device is physically located
roomNameName of the room where this device is physically located
dbIdUnique identifier of the distribution box that this device is connected to (for MCBs)
dbNameName of the distribution box that this device is connected to (for MCBs)
systemIdUnique identifier of the system that this device belongs to
systemNameName of the system that this device belongs to
realTimePowerReal-time power consumption in watts (W) measured by the device
realTimeCurrentReal-time current draw in amperes (A) measured by the device
ssidNetwork SSID (Wi-Fi name) that the device is currently connected to
mcbTypeType of MCB (trip curve type)
mcbPolesNumber of poles in the MCB
ratedCurrentRated current capacity in amperes
deviceNumberAuto-incremented sequential number for tracking device registration order
batchNumberManufacturing batch number for tracking production groups and quality control
chipModelHardware chip model identifier used in the device (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number currently running on the device
Weekly and one-time schedule configuration for automated device control
lastSeenTimestamp when the device last communicated with the system
isLockedLock status indicating if the device is locked
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
measurementTypeType of load/circuit being measured by this MCB
ratedVoltageRated voltage in volts
realTimeVoltageReal-time voltage in volts
powerFactorPower factor (0-1)
digitalTwinXX coordinate for digital twin SVG positioning
rowLineRow line number (1-6) the MCB is connected to
slotNumberSlot/position number on the busbar
isReversePowerWhether power/current readings are reversed (made absolute). When true, negative values are converted to positive.
GetMCBsResponseDto
List of MCBs with organizational hierarchy details
totalTotal count of items matching filters
pageCurrent page number
sizeItems per page
totalPagesTotal number of pages
MCBNameSuggestionDto
mcbIdMCB ID
suggestedNameSuggested device name composed of Distribution Box name, Room name, and Measurement type
distributionBoxNameDistribution Box name
roomNameRoom name
zoneNameZone name
tenantNameTenant name
deviceNumberDevice number
GetBulkMCBNamesResponseDto
Array of MCB IDs with their suggested names
MCBNameUpdateDto
mcbIdMCB ID
deviceNameNew device name to save
SaveBulkMCBNamesDto
Array of MCB ID and name pairs to save
MCBUpdateDto
mcbIdMCB ID
ratedCurrentRated current capacity in amperes (1-100)
ratedVoltageRated voltage in volts
mcbPolesNumber of poles in the MCB
mcbTypeType of MCB
measurementTypeType of load/circuit being measured by this MCB
MassUpdateMCBDto
Array of MCB updates
UpdateMCBDto
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
deviceNumberUnique device number for identification
mcbTypeType of MCB (trip curve type)
mcbPolesNumber of poles in the MCB
measurementTypeMeasurement type classification for energy usage categorization
onStatusStatus of the MCB
ratedCurrentRated current capacity in amperes
ratedVoltageRated voltage in volts
distributionBoxIdDistribution Box ID containing this MCB
digitalTwinXX coordinate for digital twin SVG positioning
rowLineRow line number (1-6) the MCB is connected to
slotNumberSlot/position number on the busbar
MassMoveMCBsDistributionBoxDto
mcbIdsArray of MCB IDs to move to the new distribution box
newDistributionBoxIdID of the new distribution box to move the MCBs to. If null or undefined, MCBs will be unassigned from their current distribution box.
MCBPositionDto
mcbIdMCB ID
digitalTwinXX coordinate for digital twin SVG positioning
rowLineRow line number (1-6) the MCB is connected to
slotNumberSlot/position number on the busbar
BulkUpdateMCBPositionsDto
Array of MCB positions to update
SetReversePowerDto
isReversePowerWhether to enable reverse power mode. When true, negative power/current values are converted to positive (absolute values).
SetReversePowerResponseDto
mcbIdThe MCB ID that was updated
isReversePowerThe new reverse power status
hourlyRecordsConvertedNumber of hourly usage history records converted to absolute values
dailyRecordsConvertedNumber of daily usage history records converted to absolute values
InvoiceItemDto
productReference to the product ID
quantityQuantity purchased
CreateInvoiceDto
dueDateDue date for the invoice
Array of invoice line items
systemIdSystem ID associated with the invoice
tenantIdTenant ID associated with the invoice
invoiceDateInvoice date (defaults to current date)
taxRateTax rate as a percentage (e.g., 10 for 10%)
discountAmountDiscount amount applied to the invoice
notesAdditional notes
Product
_idThe unique identifier of the subscription tier
pricePrice of product
nameName of product
descriptionDescription of the product
createdAtThe date when the product was created
updatedAtThe date when the product was last updated
SystemInvoiceItem
Reference to the product
quantityQuantity purchased
SystemInvoice
_idbillingTypesystemSystem ID reference
invoiceNumberUnique invoice number for tracking and reference
invoiceDateInvoice date
dueDateDue date for payment
subtotalSubtotal before tax
taxRateTax rate percentage
taxTax amount (subtotal x taxRate / 100)
totalFinal total amount
statusCurrent payment status
isDeletedSoft delete flag
createdAtupdatedAtArray of invoice line items
discountDiscount amount
notesAdditional notes
tenantTenant ID reference
zoneuserUpdateInvoiceDiscountDto
discountAmountDiscount amount to be applied to the invoice
UpdateInvoiceStatusDto
statusNew status of the invoice
UpdateInvoiceNotesDto
notesNotes for the invoice
InvoiceItemInput
productReference to the product ID
quantityQuantity purchased
UpdateInvoiceItemsDto
Array of invoice items to replace the existing items list. Each item requires a product ID and quantity.
TriggerInvoiceGenerationDto
systemIdSystem ID to generate invoice for
fromStart of billing period
toEnd of billing period
taxRateTax rate percentage (0-100)
GenerateInvoiceResultDto
systemIdSystem ID for which the invoice was generated
systemNameSystem name
successWhether invoice generation was successful
plugCountNumber of plugs billed
apiCallCountNumber of API calls billed
Generated invoice (if successful)
errorError message (if failed)
BulkInvoiceGenerationResultDto
totalSystemsTotal number of systems processed
Results for each system
billingPeriodStartBilling period start date
billingPeriodEndBilling period end date
executedAtTimestamp when the cron job ran
InvoicePdfDownloadDto
downloadUrlPresigned URL for downloading the invoice PDF
CreateBillingConfigDto
billingTypetariffRatePrice per kWh
billingDayDay of month to auto-generate invoice (1-28)
billingEmailEmail address for invoice PDF delivery
tenantIdTenant ID (required if billingType is TENANT)
zoneIdZone ID (required if billingType is ZONE)
userIdUser ID (required if billingType is USER)
replyToReply-to email for invoice emails. Replies go to this address.
UpdateBillingConfigDto
tariffRatebillingDaybillingEmailreplyToReply-to email for invoice emails. Replies go to this address.
isActiveBillingConfig
_idbillingTypesystemtariffRatePrice per kWh
billingDayDay of month (1-28) to auto-generate invoice
billingEmailEmail address to receive the invoice PDF
isActiveisDeletedcreatedAtupdatedAttenantzoneuserreplyToReply-to email for invoice emails. Replies go to this address.
scheduleNameAWS EventBridge schedule name for automated monthly billing
EnergyInvoice
_idbillingTypesystemSystem ID reference
invoiceNumberUnique invoice number for tracking and reference
invoiceDateInvoice date
dueDateDue date for payment
subtotalSubtotal before tax
taxRateTax rate percentage
taxTax amount (subtotal x taxRate / 100)
totalFinal total amount
statusCurrent payment status
isDeletedSoft delete flag
createdAtupdatedAtbillingPeriodFromBilling period start date
billingPeriodToBilling period end date
totalKwhTotal energy consumption in kWh during billing period
tariffRateTariff rate applied at time of billing (price per kWh)
currencyCurrency code (automatically derived from system country code)
emailSentWhether invoice email with PDF attachment was successfully sent
tenantTenant ID reference
zoneuserTriggerBillingDto
entityIdID of the entity to bill (tenant ID, zone ID, or user ID)
billingPeriodFromStart of billing period (ISO date)
billingPeriodToEnd of billing period (ISO date)
dueDateInvoice due date (ISO date).
taxRateTax rate percentage (0 = no tax)
replyToReply-to email address for the invoice. Replies go to this address.
TriggerBillingResponseDto
entityIdID of the entity (tenant/zone/user) that was billed
entityNameName of the entity that was billed
successWhether the billing operation was successful
totalKwhTotal energy consumption in kWh for the billing period
totalAmountTotal amount billed in the configured currency
emailSentWhether the invoice email was sent successfully
errorError message if the operation failed
EnvironmentSensorType
Type of the environment sensor device (e.g., IAQ4, IAQ9)
EnvironmentSensor
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
environmentSensorTypeType of the environment sensor device (e.g., IAQ4, IAQ9)
notificationThresholdHourHourly notification threshold for the Environment Sensor
carbonDioxideThreshold CO2 reading in ppm
formaldehydeThreshold formaldehyde (HCHO) reading in ppm
temperatureMinMin Threshold temperature reading in degrees Celsius
temperatureMaxMaxThreshold temperature reading in degrees Celsius
humidityThreshold humidity percentage
fineParticulateMatterThreshold Fine Particulate Matter in µg/m3
coarseParticulateMatterThreshold Coarse Particulate Matter in µg/m3
totalVolatileOrganicCompoundsThreshold Total Volatile Organic Compounds in ppm
soundLevelThreshold Sound Level in dB
motionDetectedMotion detection status
thresholdGroupNameName of the threshold group this sensor belongs to
deviceModelModel name or identifier of the device
deviceBrandBrand or manufacturer of the device
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
FilteredEnvironmentSensorDto
_idUnique database identifier of the device document in the system
macIdUnique identifier assigned to the device by the IoT hardware (MAC ID)
deviceNameFriendly name for the device for easy identification
onStatusCurrent operational status of the device (ON, OFF, INACTIVE, or ERROR)
totalEnergyUsageCumulative total energy consumption in kilowatt-hours (kWh) since device installation
tenantIdUnique identifier of the tenant organization that owns this device
tenantNameName of the tenant organization that owns this device
zoneIdUnique identifier of the zone that this device is assigned to
zoneNameName of the zone that this device is assigned to
roomIdUnique identifier of the room where this device is physically located
roomNameName of the room where this device is physically located
dbIdUnique identifier of the distribution box that this device is connected to (for MCBs)
dbNameName of the distribution box that this device is connected to (for MCBs)
systemIdUnique identifier of the system that this device belongs to
systemNameName of the system that this device belongs to
realTimePowerReal-time power consumption in watts (W) measured by the device
realTimeCurrentReal-time current draw in amperes (A) measured by the device
ssidNetwork SSID (Wi-Fi name) that the device is currently connected to
temperatureMinMinimum threshold temperature reading in degrees Celsius
temperatureMaxMaximum threshold temperature reading in degrees Celsius
deviceNumberAuto-incremented sequential number for tracking device registration order
batchNumberManufacturing batch number for tracking production groups and quality control
chipModelHardware chip model identifier used in the device (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number currently running on the device
Weekly and one-time schedule configuration for automated device control
lastSeenTimestamp when the device last communicated with the system
isLockedLock status indicating if the device is locked
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
environmentSensorTypeType of environment sensor (IAQ4, IAQ9, or temperature sensor)
temperatureCurrent temperature reading in degrees Celsius
carbonDioxideThreshold CO2 reading in ppm
formaldehydeThreshold formaldehyde (HCHO) reading in ppm
humidityThreshold humidity percentage
fineParticulateMatterThreshold Fine Particulate Matter (PM2.5) in µg/m³
coarseParticulateMatterThreshold Coarse Particulate Matter (PM10) in µg/m³
totalVolatileOrganicCompoundsThreshold Total Volatile Organic Compounds in ppm
soundLevelThreshold Sound Level in dB
motionDetectedMotion detection status
thresholdGroupNameName of the threshold group this sensor belongs to
GetEnvironmentSensorsDto
List of environment sensor devices
totalTotal number of environment sensor devices
pageCurrent page number
sizeNumber of items per page
totalPagesTotal number of pages
UpdateEnvironmentSensorDeviceDto
onStatusOperational status of the environment sensor device
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
UpdateEnvironmentSensorThresholdDto
temperatureMinMin Threshold temperature reading in degrees Celsius
temperatureMaxMax Threshold temperature reading in degrees Celsius
carbonDioxideThreshold CO2 reading in ppm
formaldehydeThreshold formaldehyde (HCHO) reading in ppm
humidityThreshold humidity percentage
fineParticulateMatterThreshold Fine Particulate Matter in µg/m3
coarseParticulateMatterThreshold Coarse Particulate Matter in µg/m3
totalVolatileOrganicCompoundsThreshold Total Volatile Organic Compounds in ppm
soundLevelThreshold Sound Level in dB
motionDetectedMotion detection status
notificationThresholdHourHourly notification threshold for the Environment Sensor
BulkUpdateEnvironmentSensorThresholdsDto
environmentSensorIdsIDs of environment sensors to update
carbonDioxideThreshold CO2 reading in ppm
formaldehydeThreshold formaldehyde (HCHO) in ppm
temperatureMinMin Threshold temperature in °C
temperatureMaxMax Threshold temperature in °C
humidityThreshold humidity percentage
fineParticulateMatterThreshold Fine Particulate Matter in µg/m3
coarseParticulateMatterThreshold Coarse Particulate Matter in µg/m3
totalVolatileOrganicCompoundsThreshold Total Volatile Organic Compounds in ppm
soundLevelThreshold Sound Level in dB
motionDetectedMotion detection enabled
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications
EnvironmentSensorThresholdGroup
_idPrimary ID of the Threshold Group
nameUser-defined group name
systemIdSystem this group belongs to
environmentSensorTypeType of environment sensors in this group
sensorIdsSensors assigned to this group
temperatureMinMin temperature threshold in degrees Celsius
temperatureMaxMax temperature threshold in degrees Celsius
humidityMax humidity threshold percentage
carbonDioxideMax CO2 threshold in ppm
formaldehydeMax formaldehyde (HCHO) threshold in ppm
fineParticulateMatterMax PM2.5 threshold in ug/m3
coarseParticulateMatterMax PM10 threshold in ug/m3
totalVolatileOrganicCompoundsMax TVOC threshold in ppm
soundLevelMax sound level threshold in dB
CreateEnvironmentSensorThresholdGroupDto
nameUser-defined group name
environmentSensorTypeType of environment sensors in this group
sensorIdsSensor IDs to assign to this group. Each sensor must match the group's environmentSensorType. Sensors are automatically removed from their previous group.
temperatureMinMin temperature threshold in degrees Celsius
temperatureMaxMax temperature threshold in degrees Celsius
humidityMax humidity threshold percentage
carbonDioxideMax CO2 threshold in ppm
formaldehydeMax formaldehyde (HCHO) threshold in ppm
fineParticulateMatterMax PM2.5 threshold in ug/m3
coarseParticulateMatterMax PM10 threshold in ug/m3
totalVolatileOrganicCompoundsMax TVOC threshold in ppm
soundLevelMax sound level threshold in dB
UpdateEnvironmentSensorThresholdGroupDto
nameUpdated group name
sensorIdsFull list of sensor IDs to assign to this group (replaces existing assignments). Each sensor must match the group's environmentSensorType. Sensors are automatically removed from their previous group.
temperatureMinMin temperature threshold in degrees Celsius
temperatureMaxMax temperature threshold in degrees Celsius
humidityMax humidity threshold percentage
carbonDioxideMax CO2 threshold in ppm
formaldehydeMax formaldehyde (HCHO) threshold in ppm
fineParticulateMatterMax PM2.5 threshold in ug/m3
coarseParticulateMatterMax PM10 threshold in ug/m3
totalVolatileOrganicCompoundsMax TVOC threshold in ppm
soundLevelMax sound level threshold in dB
AirconControlIrType
Type of IR device being controlled (AIRCON or FAN)
AirconControlFanBrand
Brand of the fan unit (only applicable when irType is FAN)
AirconControlSeriesType
Series type — NORMAL (control only) or PRO (control + ambient temp/humidity sensing)
AirconControl
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
isIRRemoteWhether this is an IR remote (true) or wired control (false)
irTypeType of IR device being controlled (AIRCON or FAN)
temperatureTarget temperature setting in degrees Celsius
deviceModelModel name or identifier of the device
deviceBrandBrand or manufacturer of the device
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
fanBrandBrand of the fan unit (only applicable when irType is FAN)
fanSpeedFan speed setting (only applicable when irType is FAN)
brandBrand of the AC unit being controlled
modeAC operation mode (COOL, HEAT, DRY, FAN, AUTO)
fanFan speed setting (LOW, MEDIUM, HIGH, AUTO)
swingSwing/oscillation setting (ON, OFF, AUTO)
temperatureMinMin ambient temperature threshold in Celsius for alerts
temperatureMaxMax ambient temperature threshold in Celsius for alerts
humidityMinMin ambient humidity threshold percentage for alerts
humidityMaxMax ambient humidity threshold percentage for alerts
notificationThresholdHourMinimum hours between repeated notifications for the same alert type
seriesTypeSeries type — NORMAL (control only) or PRO (control + ambient temp/humidity sensing)
FilteredAirconControlDto
_idUnique database identifier of the device document in the system
macIdUnique identifier assigned to the device by the IoT hardware (MAC ID)
deviceNameFriendly name for the device for easy identification
onStatusCurrent operational status of the device (ON, OFF, INACTIVE, or ERROR)
totalEnergyUsageCumulative total energy consumption in kilowatt-hours (kWh) since device installation
tenantIdUnique identifier of the tenant organization that owns this device
tenantNameName of the tenant organization that owns this device
zoneIdUnique identifier of the zone that this device is assigned to
zoneNameName of the zone that this device is assigned to
roomIdUnique identifier of the room where this device is physically located
roomNameName of the room where this device is physically located
dbIdUnique identifier of the distribution box that this device is connected to (for MCBs)
dbNameName of the distribution box that this device is connected to (for MCBs)
systemIdUnique identifier of the system that this device belongs to
systemNameName of the system that this device belongs to
realTimePowerReal-time power consumption in watts (W) measured by the device
realTimeCurrentReal-time current draw in amperes (A) measured by the device
ssidNetwork SSID (Wi-Fi name) that the device is currently connected to
isIRRemoteWhether this is an IR remote (true) or wired control (false)
irTypeType of IR device being controlled (AIRCON or FAN)
temperatureTarget temperature setting in degrees Celsius
deviceNumberAuto-incremented sequential number for tracking device registration order
batchNumberManufacturing batch number for tracking production groups and quality control
chipModelHardware chip model identifier used in the device (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number currently running on the device
Weekly and one-time schedule configuration for automated device control
lastSeenTimestamp when the device last communicated with the system
isLockedLock status indicating if the device is locked
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
fanBrandBrand of the fan unit (only applicable when irType is FAN)
fanSpeedFan speed setting (only applicable when irType is FAN)
brandBrand of the AC unit being controlled
modeAC operation mode (COOL, HEAT, DRY, FAN, AUTO)
fanFan speed setting (LOW, MEDIUM, HIGH, AUTO)
swingSwing/oscillation setting (ON, OFF, AUTO)
seriesTypeSeries type — NORMAL (control only) or PRO (control + ambient temp/humidity sensing)
GetAirconControlsDto
List of aircon control devices with organizational hierarchy details
totalTotal number of aircon control devices
pageCurrent page number
sizeNumber of items per page
UpdateAirconControlDto
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
isIRRemoteWhether this is an IR remote (true) or wired control (false)
brandTypeBrand of the AC unit being controlled
irTypeType of IR device being controlled (AIRCON or FAN)
fanBrandBrand of the fan unit (only applicable when irType is FAN)
fanSpeedFan speed setting (only applicable when irType is FAN)
ControlAirconDto
onStatusPower state of the AC (ON/OFF/INACTIVE)
temperatureTarget temperature setting in degrees Celsius
modeAC operation mode (COOL, HEAT, DRY, FAN, AUTO)
fanFan speed setting (LOW, MEDIUM, HIGH, AUTO)
swingSwing/oscillation setting (ON, OFF, AUTO)
fanSpeedFan speed setting (only applicable when irType is FAN)
brandTypeBrand of the AC unit (only applicable when irType is AIRCON)
UpdateAirconControlThresholdDto
temperatureMinMin ambient temperature threshold in Celsius
temperatureMaxMax ambient temperature threshold in Celsius
humidityMinMin ambient humidity threshold percentage
humidityMaxMax ambient humidity threshold percentage
notificationThresholdHourMinimum hours between repeated notifications for the same alert type
MassUpdateBrandAirconDto
idsArray of Aircon Control IDs to update
brandTypeBrand to assign to all specified devices
BulkControlAirconDto
idsArray of Aircon Control IDs to control
onStatusPower state of the AC (ON/OFF/INACTIVE)
temperatureTarget temperature setting in degrees Celsius
modeAC operation mode (COOL, HEAT, DRY, FAN, AUTO)
fanFan speed setting (LOW, MEDIUM, HIGH, AUTO)
swingSwing/oscillation setting (ON, OFF, AUTO)
fanSpeedFan speed setting (only applicable when irType is FAN)
brandTypeBrand of the AC unit (only applicable when irType is AIRCON)
FilteredSmartSwitchDto
_idUnique database identifier of the device document in the system
macIdUnique identifier assigned to the device by the IoT hardware (MAC ID)
deviceNameFriendly name for the device for easy identification
onStatusCurrent operational status of the device (ON, OFF, INACTIVE, or ERROR)
totalEnergyUsageCumulative total energy consumption in kilowatt-hours (kWh) since device installation
tenantIdUnique identifier of the tenant organization that owns this device
tenantNameName of the tenant organization that owns this device
zoneIdUnique identifier of the zone that this device is assigned to
zoneNameName of the zone that this device is assigned to
roomIdUnique identifier of the room where this device is physically located
roomNameName of the room where this device is physically located
dbIdUnique identifier of the distribution box that this device is connected to (for MCBs)
dbNameName of the distribution box that this device is connected to (for MCBs)
systemIdUnique identifier of the system that this device belongs to
systemNameName of the system that this device belongs to
realTimePowerReal-time power consumption in watts (W) measured by the device
realTimeCurrentReal-time current draw in amperes (A) measured by the device
ssidNetwork SSID (Wi-Fi name) that the device is currently connected to
switchTypeType of appliance the switch controls (LIGHT, FAN, AIRCON, or UNREGISTERED)
numberOfGangsNumber of gangs/buttons on the switch (1-4)
Array of gang switch states - each gang has its own independent on/off state
deviceNumberAuto-incremented sequential number for tracking device registration order
batchNumberManufacturing batch number for tracking production groups and quality control
chipModelHardware chip model identifier used in the device (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number currently running on the device
Weekly and one-time schedule configuration for automated device control
lastSeenTimestamp when the device last communicated with the system
isLockedLock status indicating if the device is locked
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
GetSmartSwitchesDto
List of Smart Switches with organizational hierarchy details
totalTotal number of Smart Switches
pageCurrent page number
sizeNumber of items per page
UpdateSmartSwitchDto
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
onStatusStatus of the Smart Switch
switchTypeType of appliance the switch controls
numberOfGangsNumber of gangs/buttons on the switch (1-4)
SmartSwitch
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
switchTypeType of appliance the switch controls (LIGHT, FAN, AIRCON, or UNREGISTERED)
numberOfGangsNumber of gangs/buttons on the switch (1-4)
Array of gang switch states - each gang has its own independent on/off state
deviceModelModel name or identifier of the device
deviceBrandBrand or manufacturer of the device
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
StatusTriggerSource
Source that triggered the control command
ControlSmartSwitchDto
gangStatesArray of binary gang switch states where 1 = ON and 0 = OFF. Array index corresponds to gang number (e.g., [1, 0, 0, 1] means gang 1 ON, gang 2 OFF, gang 3 OFF, gang 4 ON)
triggerSourceSource that triggered the control command
BulkControlSmartSwitchDto
idsArray of Smart Switch IDs to control
onStatusDesired power state for all gangs on all Smart Switches. Use ON to turn all gangs on, or OFF to turn all gangs off.
WaterMeterSize
Pipe diameter size (DN15, DN20, DN25, etc.)
WaterMeter
_idPrimary ID of the Device
deviceTypeType of device (discriminator field)
macIdMAC ID of the Device (from IoT device)
deviceNameName of the Device
deviceNumberUnique device number for identification
onStatusStatus of the Device (ON / OFF / INACTIVE / ERROR)
locationPhysical location or address where the device is installed
remarksRemarks for the Device
batchNumberManufacturing batch number for tracking production groups
chipModelHardware chip model identifier used in the device
versionNumberFirmware version number currently running on the device
ssidNetwork SSID (Wi-Fi name) that the device is connected to
tenantTenant ID reference
Tagged Zone
roomRoom ID reference
systemSystem ID reference
createdAtDate Time of the Creation
updatedAtDate Time of the Update
lastSeenLast time the device was seen/reported
isLockedWhether the device is locked. When locked, the device on/off status cannot be toggled.
totalEnergyUsageTotal cumulative energy usage in kWh
totalEnergySavedTotal energy saved through optimization in kWh
autoUpdateAttemptsNumber of auto-update OTA attempts sent to this device
autoUpdateBlacklistedWhether device is blacklisted from auto-updates (max retries exceeded)
manualUpdateBlacklistWhether device is manually blacklisted from auto-updates by admin
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
meterSizePipe diameter size (DN15, DN20, DN25, etc.)
realTimeFlowRateCurrent flow rate in liters per minute
realTimePressureWater pressure in bar
waterConsumptionTotal water consumption in liters (incremented hourly)
isLeakDetectedWhether a leak is currently detected
leakThresholdFlowRateCurrent leak detection threshold in liters per minute
deviceModelModel name or identifier of the device
deviceBrandBrand or manufacturer of the device
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
Schedule configuration for the device. Contains recurring weekly schedules and one-time scheduled tasks.
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
lastAutoUpdateAttemptTimestamp of last auto-update OTA attempt
inactivityNotificationSentAtTimestamp when the last inactivity notification was sent for this device
meterModelMeter model/manufacturer
realTimeTemperatureWater temperature in Celsius (optional)
flowRateMaxMax Threshold flow rate reading in L/min
flowRateMinMin Threshold flow rate reading in L/min
pressureMaxMax Threshold pressure reading in bar
pressureMinMin Threshold pressure reading in bar
temperatureMinMin Threshold temperature reading in degrees Celsius
temperatureMaxMax Threshold temperature reading in degrees Celsius
lastLeakNotificationAtTimestamp of last leak notification received
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications of the same type
FilteredWaterMeterDto
_idUnique database identifier of the device document in the system
macIdUnique identifier assigned to the device by the IoT hardware (MAC ID)
deviceNameFriendly name for the device for easy identification
onStatusCurrent operational status of the device (ON, OFF, INACTIVE, or ERROR)
totalEnergyUsageCumulative total energy consumption in kilowatt-hours (kWh) since device installation
tenantIdUnique identifier of the tenant organization that owns this device
tenantNameName of the tenant organization that owns this device
zoneIdUnique identifier of the zone that this device is assigned to
zoneNameName of the zone that this device is assigned to
roomIdUnique identifier of the room where this device is physically located
roomNameName of the room where this device is physically located
dbIdUnique identifier of the distribution box that this device is connected to (for MCBs)
dbNameName of the distribution box that this device is connected to (for MCBs)
systemIdUnique identifier of the system that this device belongs to
systemNameName of the system that this device belongs to
realTimePowerReal-time power consumption in watts (W) measured by the device
realTimeCurrentReal-time current draw in amperes (A) measured by the device
ssidNetwork SSID (Wi-Fi name) that the device is currently connected to
meterSizePipe diameter size (DN15, DN20, DN25, etc.)
realTimeFlowRateCurrent flow rate in liters per minute
realTimePressureWater pressure in bar
waterConsumptionTotal water consumption in liters (incremented hourly)
isLeakDetectedWhether a leak is currently detected
leakThresholdFlowRateCurrent leak detection threshold in liters per minute
deviceNumberAuto-incremented sequential number for tracking device registration order
batchNumberManufacturing batch number for tracking production groups and quality control
chipModelHardware chip model identifier used in the device (e.g., ESP32C2, ESP8266)
versionNumberFirmware version number currently running on the device
Weekly and one-time schedule configuration for automated device control
lastSeenTimestamp when the device last communicated with the system
isLockedLock status indicating if the device is locked
inactivityNotificationEnabledWhether inactivity notifications are enabled for this device
meterModelMeter model/manufacturer
realTimeTemperatureWater temperature in Celsius (optional)
lastLeakNotificationAtTimestamp of last leak notification received
flowRateMaxMax Threshold flow rate reading in L/min
flowRateMinMin Threshold flow rate reading in L/min
pressureMaxMax Threshold pressure reading in bar
pressureMinMin Threshold pressure reading in bar
temperatureMinMin Threshold temperature reading in degrees Celsius
temperatureMaxMax Threshold temperature reading in degrees Celsius
GetWaterMetersResponseDto
List of water meters with organizational hierarchy details
totalpagesizetotalPagesTotal number of pages
UpdateWaterMeterDto
deviceNameName of the device
locationPhysical location of the device
remarksAdditional remarks or notes about the device
tenantIdTenant ID to associate the device with
zoneIdZone ID to associate the device with
roomIdRoom ID to associate the device with
isLockedWhether the device is locked. When locked, the device cannot be toggled ON/OFF.
isSpareWhether the device is a spare/inventory device. Spare devices can be filtered out of user-facing dashboards.
meterSizeSize/diameter of the water meter
meterModelModel name/number of the water meter
UpdateWaterMeterThresholdDto
flowRateMaxMax Threshold flow rate reading in L/min
flowRateMinMin Threshold flow rate reading in L/min
pressureMaxMax Threshold pressure reading in bar
pressureMinMin Threshold pressure reading in bar
temperatureMaxMax Threshold temperature reading in degrees Celsius
temperatureMinMin Threshold temperature reading in degrees Celsius
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications of the same type
SetLeakThresholdDto
thresholdFlowRateThreshold flow rate in liters per minute
LeakHistoryResponseDto
Array of leak detection notifications
totalTotal number of leak notifications
pageCurrent page number
sizeNumber of items per page
totalPagesTotal number of pages
AlertThresholdHistory
waterMeterWater meter ID
thresholdFlowRateThreshold flow rate in liters per minute
createdAtTimestamp when this record was created
updatedAtTimestamp when this record was last updated
ThresholdHistoryResponseDto
Array of threshold configuration history records
totalTotal number of threshold history records
pageCurrent page number
sizeNumber of records per page
totalPagesTotal number of pages
WaterMeterLatestReadingDto
realTimeFlowRateCurrent flow rate in liters per minute
realTimePressureWater pressure in bar
lastSeenLast time the device sent data
realTimeTemperatureWater temperature in Celsius (optional)
BulkSetLeakThresholdDto
waterMeterIdsArray of water meter IDs to update
thresholdFlowRateLeak detection threshold in liters per minute
FailedWaterMeterDto
waterMeterIdWater meter ID that failed
errorError message explaining why it failed
BulkWaterMeterResponseDto
Array of successfully processed water meters
Array of failed water meters with error details
summarySummary of the bulk operation
BulkUpdateWaterMeterThresholdsDto
waterMeterIdsIDs of water meters to update
flowRateMaxMax Threshold flow rate in L/min
flowRateMinMin Threshold flow rate in L/min
pressureMaxMax Threshold pressure in bar
pressureMinMin Threshold pressure in bar
temperatureMaxMax Threshold temperature in °C
temperatureMinMin Threshold temperature in °C
notificationThresholdHourHourly notification threshold — minimum hours between repeat notifications
ChatMessageDto
roleRole of the message sender
contentContent of the message
ChatRequestDto
messageThe user's current message
Array of previous messages in the conversation (max 30 messages)
PlugCategoryResponseDto
_idCategory ID
nameUnique category key
displayNameHuman-readable display name
isBuiltInWhether this is a built-in category
createdAtCreation timestamp
createdByAdmin who created this category
PlugCategoriesListResponseDto
totalCreatePlugCategoryDto
nameUnique category key — must be UPPER_SNAKE_CASE
displayNameHuman-readable display name
CreateRoomDto
nameDisplay name for the room. This will be used to identify the room throughout the system.
squareMeterFloor area of the room in square meters.
remarksOptional administrative notes or comments about the room. Used for describing the room purpose or equipment.
systemIdUnique identifier of the system that this room belongs to. Automatically populated from URL parameter.
tenantIdOptional identifier of the tenant organization that owns this room. Can be omitted for single-tenant systems.
zoneIdOptional identifier of the zone to assign this room to. If provided, the room will be accessible by this zone.
roomTypeRoom type key. Must be a valid type defined for this system via /entity-type/ROOM.
GetRoomsResponseDto
dataArray of GetRoomDto IDs
totalTotal count of items matching filters
pageCurrent page number
sizeItems per page
totalPagesTotal number of pages
UpdateRoomDto
nameUpdated display name for the room. This will replace the existing room name.
zoneIdUpdated zone identifier to reassign room access to a different zone.
tenantIdUpdated tenant identifier to reassign the room to a different organization.
squareMeterUpdated floor area of the room in square meters. Pass null to clear the existing value.
remarksUpdated administrative notes or comments about the room. Replaces existing remarks if provided.
roomTypeRoom type key. Must be a valid type defined for this system via /entity-type/ROOM.
CreateDistributionBoxDto
nameName/identifier of the Distribution Box
systemIdSystem ID to which this Distribution Box belongs
numberOfRowsNumber of rows in the distribution box
hasMainBreakerWhether the distribution box has main circuit breaker
mainBreakerRatingMain breaker rating in amperes (if hasMainBreaker is true)
tenantIdTenant ID to which this Distribution Box belongs
zoneIdZone ID to which this Distribution Box belongs
roomIdRoom ID to which this Distribution Box belongs
mcbIdsArray of MCB IDs to be assigned to this distribution box
locationLocation of the Distribution Box
remarksRemarks for the Distribution Box
digitalTwinWidthWidth of the digital twin canvas in pixels
digitalTwinHeightHeight of the digital twin canvas in pixels
GetDistributionBoxesDto
Array of Distribution Boxes
totalTotal number of Distribution Boxes
pageCurrent page number
sizeNumber of items per page
SandboxDeviceInputDto
idUnique identifier for the sandbox device
typeType of sandbox device
nameUser-defined name for the device
digitalTwinXX position on the digital twin canvas
rowLineRow line position (1-6)
ratedCurrentRated current in amperes
ratedVoltageRated voltage in volts
mcbTypeMCB type (for DUMB_MCB devices)
mcbPolesMCB poles configuration (for DUMB_MCB devices)
leakageCurrentLeakage current in milliamperes (for RCCB devices)
colorCustom color for visual identification (hex code)
notesAdditional notes about the device
WireConnectionDto
deviceIdDevice ID (MCB._id or SandboxDevice.id)
deviceTypeType of device being connected
sideSide of the device where the connection is made
SandboxWireInputDto
idUnique identifier for the wire connection
Source connection point
Target connection point
colorWire color (hex code)
thicknessWire thickness in pixels
labelOptional label for the wire
UpdateDistributionBoxDto
nameName/identifier of the Distribution Box
numberOfRowsNumber of rows in the distribution box
hasMainBreakerWhether the distribution box has main circuit breaker
mainBreakerRatingMain breaker rating in amperes (if hasMainBreaker is true)
tenantIdTenant ID to which this Distribution Box belongs
zoneIdZone ID to which this Distribution Box belongs
roomIdRoom ID to which this Distribution Box belongs
mcbIdsArray of MCB IDs to be assigned to this distribution box
locationLocation of the Distribution Box
remarksRemarks for the Distribution Box
Array of sandbox (non-smart) devices in the distribution box
Array of wire connections between devices in the distribution box
digitalTwinWidthWidth of the digital twin canvas in pixels
digitalTwinHeightHeight of the digital twin canvas in pixels
AddMCBToDistributionBoxDto
mcbIdMCB ID to add to the distribution box
RemoveMCBFromDistributionBoxDto
mcbIdMCB ID to remove from the distribution box
GetMCBEnergyUsageDto
mcbIdMCB ID
deviceNameMCB name
totalEnergyUsageTotal energy usage in kWh
realTimePowerReal-time power consumption in watts
realTimeCurrentReal-time current in amperes
GetDistributionBoxEnergyUsageDto
distributionBoxIdDistribution Box ID
nameDistribution Box name
totalEnergyUsageTotal energy usage in kWh (sum of all MCBs)
mcbCountNumber of MCBs in this distribution box
Individual MCB energy usage details
GetAggregatedDistributionBoxEnergyUsageDto
totalEnergyUsageTotal aggregated energy usage in kWh
distributionBoxCountNumber of distribution boxes included
Individual distribution box energy usage details
CreateSandboxDeviceDto
typeType of sandbox device
nameUser-defined name for the device
digitalTwinXX position on the digital twin canvas
rowLineRow line position (1-6)
ratedCurrentRated current in amperes
ratedVoltageRated voltage in volts
mcbTypeMCB type (for DUMB_MCB devices)
mcbPolesMCB poles configuration (for DUMB_MCB devices)
leakageCurrentLeakage current in milliamperes (for RCCB devices)
colorCustom color for visual identification (hex code)
notesAdditional notes about the device
UpdateSandboxDeviceDto
typeType of sandbox device
nameUser-defined name for the device
digitalTwinXX position on the digital twin canvas
rowLineRow line position (1-6)
ratedCurrentRated current in amperes
ratedVoltageRated voltage in volts
mcbTypeMCB type (for DUMB_MCB devices)
mcbPolesMCB poles configuration (for DUMB_MCB devices)
leakageCurrentLeakage current in milliamperes (for RCCB devices)
colorCustom color for visual identification (hex code)
notesAdditional notes about the device
CreateSandboxWireDto
Source connection point
Target connection point
colorWire color (hex code)
thicknessWire thickness in pixels
labelOptional label for the wire
UpdateSandboxWireDto
Source connection point
Target connection point
colorWire color (hex code)
thicknessWire thickness in pixels
labelOptional label for the wire
UpdateSandboxElementsDto
Array of all sandbox devices (replaces existing)
Array of all sandbox wires (replaces existing)
CreateCorsOriginDto
originOrigin URL to be whitelisted (must be HTTPS)
systemIdSystem that requested this origin
descriptionDescription explaining why this origin needs access
partnerNameName of the partner organization
contactEmailContact email for the partner
expiresAtOptional expiration date for this whitelist entry
GetCorsOriginDto
_idCORS origin ID
originOrigin URL
statusCurrent status
descriptionDescription
requestedByAdmin ID reference
requestedAtRequest date
createdAtCreated date
updatedAtUpdated date
partnerNamePartner name
contactEmailContact email
approvedByAdmin ID reference
approvedAtApproval date
notesNotes
totalRequestsTotal requests
lastUsedAtLast used date
expiresAtExpiration date
GetCorsOriginsDto
Array of CORS origins
totalTotal number of CORS origins
pageCurrent page number
sizeNumber of items per page
UpdateCorsOriginDto
descriptionUpdated description
partnerNameUpdated partner name
contactEmailUpdated contact email
expiresAtUpdated expiration date
UpdateCorsOriginStatusDto
statusNew status for the CORS origin
notesNotes or comments about the status change
CreateSurgeOverrideDto
nameDisplay name
applicableEntityTypesEntity types this override can be applied to
thresholdKwhAbsolute daily threshold (kWh) granted while the override is active
pricePrice
descriptionCustomer-facing description
isActiveWhether the override is sellable
SurgeOverrideResponseDto
_idnameapplicableEntityTypesthresholdKwhpriceisActivecreatedAtupdatedAtdescriptionUpdateSurgeOverrideDto
nameDisplay name
descriptionCustomer-facing description
applicableEntityTypesEntity types this override can be applied to
thresholdKwhAbsolute daily threshold (kWh) granted while the override is active
pricePrice
isActiveWhether the override is sellable
PurchaseSurgeOverrideDto
surgeOverrideIdSurgeOverride catalog id
entityTypeEntity type the override should apply to
entityIdEntity id (room/tenant/zone)
paymentIdOptional Payment record id to link to this purchase (refunds handled via payment module)
SurgeOverridePurchaseResponseDto
_idsurgeOverridesystementityTypeType of entity to start usage surge analysis for
entityIdthresholdKwhactiveFromstatuspurchasedBycreatedAtupdatedAtpaymentpurchasedByNameDisplay name of the admin who purchased
entityNameDisplay name of the entity (room/tenant/zone)
cancelledAtcancelledBycancelReasonCancelSurgeOverrideDto
reasonReason supplied at cancellation time
SurgeOverridePurchaseListResponseDto
totalpagesizeSurgeOverridePurchaseActiveMapResponseDto
Map of entityId → active SurgeOverridePurchase. Only entities with an active override are included.
totalOnboardingPhase
statusstartDategcalEventIdactivationScheduledTaskNameAWS Scheduler task name for auto-activating this phase on startDate
endDateScheduleGroup
plugIdsPlug IDs assigned to this schedule group
StaticSchedulePhase
statusincludePublicHolidaysstartDategcalEventIdactivationScheduledTaskNameAWS Scheduler task name for auto-activating this phase on startDate
endDateFallback schedule applied to unlocked plugs not in any scheduleGroup
Per-group device schedules. Devices in a group get the group schedule; remaining unlocked devices get defaultStaticSchedule.
ascentAIScheduledTaskNameAscentAIPhase
statusautoSuggestionsEnabledstartDategcalEventIdactivationScheduledTaskNameAWS Scheduler task name for auto-activating this phase on startDate
endDatesuggestionsGeneratedAtsuggestionsActivatedAtOnboardingIterationDto
iterationNumberstatusnamestartedAtcompletedAtascentAiRecommendationsReportSnapshotDto
s3KeyfilenameformatgeneratedAtSystemOnboardingResponseDto
_idsystemcustomerEmailsactiveIterationIndexcreatedAtupdatedAtDefaultStaticScheduleDto
Monday schedule entries
Tuesday schedule entries
Wednesday schedule entries
Thursday schedule entries
Friday schedule entries
Saturday schedule entries
Sunday schedule entries
ScheduleGroupDto
plugIdsUpdateOnboardingPhaseDto
startDateISO 8601 date string
endDateISO 8601 date string
includePublicHolidaysDefault schedule auto-applied to unlocked plugs on Phase 2 activation
Per-group device schedules for Phase 2. Devices in a group get the group schedule; remaining unlocked devices get defaultStaticSchedule.
gcalEventTitlegcalEventTimeISO 8601 date string for the GCal event time (independent of phase startDate/endDate)
skipGcalSet to true to skip GCal invite creation even if this phase normally requires one
EcoguardRecommendationDto
suitableWhether this device category benefits from EcoGuard
reasonHuman-readable explanation shown to users
suggestedIdleThresholdSuggested idle power threshold in watts (with 1.1x buffer). Only present if suitable is true.
suggestedTimerSuggested auto-shutoff timer in minutes. Only present if suitable is true.
RecommendationTier
Recommendation tier used: "rule-based" (fast, ~5ms), "clustering" (medium, ~10ms), or "llm" (slow, ~60s). Indicates the analysis method used.
PlugRecommendationDto
deviceIdThe unique identifier of the device (Plug or MCB)
macIdThe MAC address of the device
deviceNameThe name of the device for easy identification
plugCategoryThe category of the plug device (only for Plugs, empty for MCBs)
Array of AI-recommended schedule entries for Monday based on usage patterns
Array of AI-recommended schedule entries for Tuesday based on usage patterns
Array of AI-recommended schedule entries for Wednesday based on usage patterns
Array of AI-recommended schedule entries for Thursday based on usage patterns
Array of AI-recommended schedule entries for Friday based on usage patterns
Array of AI-recommended schedule entries for Saturday based on usage patterns
Array of AI-recommended schedule entries for Sunday based on usage patterns
summaryAI-generated summary explaining the recommended schedule and detected behavioral patterns
predictedIdleEnergyUsagePredicted average power consumption during idle periods in watts based on historical data
totalNumberOfIdleHoursTotal count of hours identified as idle or low-usage periods across the analysis timeframe
averageUsagePerDayAverage daily power consumption in watts calculated over the analyzed time period
flagsArray of flags highlighting anomalies, data gaps, or notable behavioral patterns detected by AI
EcoGuard suitability and suggested configuration for this device
deviceNumberThe device number assigned to the device
tierRecommendation tier used: "rule-based" (fast, ~5ms), "clustering" (medium, ~10ms), or "llm" (slow, ~60s). Indicates the analysis method used.
confidenceScoreConfidence score (0-1) indicating pattern clarity. Higher score = simpler, more predictable pattern.
BulkPlugRecommendationsResponseDto
Map of plug IDs to their AI-generated ON/OFF schedule recommendations. Each key is a plug ID, and the value contains the complete recommendation data including weekday schedules, summary, and metrics.
bulkSummaryAI-generated overall summary analyzing all plugs together. Identifies common patterns (e.g., "Working hours appear to be 9 AM - 6 PM across all devices"), optimization opportunities (e.g., "Coffee machine only used on Tuesdays and Thursdays"), cross-device insights, and collective energy-saving recommendations.
GenerateReportResponseDto
s3KeyS3 key where the report is stored
filenameFilename of the generated report
formatgeneratedAtWhen the report was generated
downloadUrlPresigned download URL valid for 10 minutes
DownloadReportResponseDto
downloadUrlPresigned S3 URL to download the report (expires in expiresIn seconds)
filenameFilename of the report
expiresInPresigned URL expiration time in seconds
formatIterationSummaryDto
iterationNumberindexZero-based index in the iterations array
statusisActivenamestartedAtcompletedAtReportType
Scope level for the requested AI-generated energy report (ROOM, SYSTEM, TENANT, or USER)
EnergyReportTypeDto
reportTypeScope level for the requested AI-generated energy report (ROOM, SYSTEM, TENANT, or USER)
EnergyUsageRecommendationReportDto
Array of AI-recommended schedule entries for Monday based on usage patterns
Array of AI-recommended schedule entries for Tuesday based on usage patterns
Array of AI-recommended schedule entries for Wednesday based on usage patterns
Array of AI-recommended schedule entries for Thursday based on usage patterns
Array of AI-recommended schedule entries for Friday based on usage patterns
Array of AI-recommended schedule entries for Saturday based on usage patterns
Array of AI-recommended schedule entries for Sunday based on usage patterns
summaryAI-generated summary explaining the recommended schedule and detected behavioral patterns
predictedIdleEnergyUsagePredicted average power consumption during idle periods in watts based on historical data
totalNumberOfIdleHoursTotal count of hours identified as idle or low-usage periods across the analysis timeframe
averageUsagePerDayAverage daily power consumption in watts calculated over the analyzed time period
flagsArray of flags highlighting anomalies, data gaps, or notable behavioral patterns detected by AI
EcoGuard suitability and suggested configuration for this device
BulkPlugRecommendationsRequestDto
plugIdsArray of plug IDs to generate AI recommendations for. Minimum 1, maximum 200 plugs per request. For larger batches, split into multiple requests.
EnergyReportDto
reportTypeScope level of this AI-generated energy report (ROOM, SYSTEM, TENANT, or USER)
executiveSummaryHigh-level executive summary highlighting the most important insights and findings
consumptionAnalysisDetailed analysis of overall energy consumption patterns including totals and peak periods
scheduleRecommendationsArray of schedule-based recommendations comparing current plug schedules with actual usage patterns to optimize energy consumption. Each recommendation includes the plug name, current schedule, recommended changes, and estimated savings.
createdAtTimestamp when this AI report was generated by the system
energyUsageBreakdownCategorical breakdown of energy usage by device type or plug groupings showing percentage contributions
highLoadDevicesArray of plug devices or equipment with the highest power consumption for targeted optimization
usageTrendsTemporal trends and recurring patterns identified across different days and hours from historical data
scheduleComplianceAnalysis of how well actual plug on/off behavior aligns with configured schedules
anomalyInsightsArray of detected anomalies, unusual behaviors, or operational assumptions that may require attention
estimatedCarbonEmissionsCalculated Scope 2 carbon emissions estimate based on energy consumption and regional emission factors
improvementsComparative analysis showing improvement or decline in energy efficiency over time
DeviceStatusBreakdownDto
totalTotal number of devices
activeNumber of active devices
inactiveNumber of inactive devices
offlineNumber of offline devices
spareNumber of spare devices (excluded from active/inactive/offline counts)
CostMetricDto
valueCurrent cost value (SGD)
trendTrend indicator (positive = increase, negative = decrease)
trendDirectionTrend direction
CarbonMetricDto
valueCarbon emissions saved (kg CO₂)
indicatorIndicator status
PlatformOverviewDto
totalSystemsTotal number of systems registered
totalTenantsTotal number of active tenants
Total number of plugs with status breakdown
totalZonesTotal number of active zones
totalRoomsTotal number of active rooms
totalEnergyMonitoredTotal energy monitored across all systems (kWh)
Estimated total energy cost (SGD)
Total carbon emissions avoided (kg CO₂)
EnergyDataPointDto
labelDate/time label for the data point
valueEnergy value (kWh)
timestampTimestamp of the data point
EnergyUsageDto
periodTime period used for aggregation
totalEnergyTotal energy consumed in the period (kWh)
Energy usage data points
averageEnergyAverage energy per time unit (kWh)
SystemEnergyDto
systemIdSystem ID
systemNameSystem name
energyConsumedTotal energy consumed (kWh)
plugCountNumber of plugs in the system
percentageOfTotalPercentage of total energy
rankRank position
TopSystemsDto
List of top systems by energy consumption
totalEnergyTotal energy consumed by all systems (kWh)
HourlyUsageDto
hourHour of day (0-23)
energyEnergy consumed during this hour (kWh)
percentageOfDayPercentage of daily total
isPeakIs this a peak hour?
PeakHoursDto
Peak usage hours data
overallPeakHourOverall peak hour
peakHourEnergyPeak hour energy value (kWh)
offPeakAverageEnergyOff-peak average energy (kWh)
GrowthDataPointDto
monthMonth label
countNumber of new active plugs (>1kWh)
cumulativeCumulative total
dateDate of the data point
GrowthTrendDto
Monthly growth data points
totalGrowthTotal growth count
averageMonthlyGrowthAverage monthly growth
growthRateGrowth rate percentage
ProjectionDataPointDto
monthMonth label
projectedCountProjected device count
lowerBoundLower bound estimate
upperBoundUpper bound estimate
dateDate of projection
RegressionParametersDto
slopeSlope coefficient
interceptY-intercept
rSquaredR-squared value (goodness of fit)
GrowthProjectionDto
Projected growth for next 3 months
Linear regression parameters
expectedTotalExpected total devices after 3 months
confidenceConfidence level (0-1)
RoleCountDto
roleRole name
countNumber of admins with this role
percentagePercentage of total
RoleDistributionDto
Role distribution data
totalAdminsTotal number of admins
CategoryCountDto
categoryPlug category
countNumber of plugs in this category
percentagePercentage of total plugs
PlugCategoryDistributionDto
Category distribution data
totalPlugsTotal number of plugs
CategoryEnergyDto
categoryPlug category
energyTotal energy consumed by this category (kWh)
percentagePercentage of total energy
plugCountNumber of plugs in category
averageEnergyPerPlugAverage energy per plug (kWh)
PlugCategoryEnergyDistributionDto
Category energy distribution data
totalEnergyTotal energy consumed (kWh)
SystemPlugCountDto
systemIdSystem ID
systemNameSystem name
plugCountNumber of plugs in this system
percentagePercentage of total plugs
PlugSystemDistributionDto
System distribution data
totalPlugsTotal number of plugs
totalSystemsTotal number of systems
CategoryAnalyticsResponseDto
categoryThe plug category being analyzed
numberOfDevicesNumber of devices in this category
Daily energy usage breakdown
totalKwhTotal kWh consumed in the period
averageKwhPerDayAverage kWh per day across all devices in category
averageKwhPerDayPerDeviceAverage kWh per day per device
predictedKwhPerYearPredicted kWh consumption per year (based on average)
totalCostSgdTotal cost in SGD for the period (at $0.3065/kWh)
predictedAnnualCostSgdPredicted annual cost in SGD (at $0.3065/kWh)
predictedAnnualCostPerDeviceSgdPredicted annual cost in SGD per device (at $0.3065/kWh)
EnergyBreakdownRequestDto
systemIdSystem ID
startDateStart date for energy data (ISO 8601 format)
endDateEnd date for energy data (ISO 8601 format)
granularityTime granularity for data aggregation
compareStartDateStart date for comparison period (optional)
compareEndDateEnd date for comparison period (optional)
EnergyBreakdownPointDto
timestampTimestamp of this data point
energyEnergy consumption in kWh
costCost in SGD (calculated using tariff rate active at this timestamp)
tariffRateTariff rate used for this calculation (cents per kWh)
EnergyPeriodDto
totalEnergyTotal energy consumption for period (kWh)
totalCostTotal cost for period (SGD)
Breakdown by time bucket
EnergyComparisonDto
totalEnergyTotal energy consumption for period (kWh)
totalCostTotal cost for period (SGD)
Breakdown by time bucket
energyDeltaEnergy delta compared to main period (kWh)
costDeltaCost delta compared to main period (SGD)
EnergyBreakdownResponseDto
Main period energy and cost data
calculatedAtTimestamp when these costs were calculated
Comparison period data (if comparison dates provided)
ToolDefinitionDto
nameTool name (unique identifier)
descriptionTool description for LLM
JSON Schema for tool input parameters
AgentChatRequestDto
Conversation history including user and assistant messages
Available tools for the LLM to call
systemIdCurrent system ID for context-aware responses
CalendarPreviewRoomDto
roomIdRoom ID
roomNameRoom name as stored in the system
deviceCountNumber of devices in this room that would receive schedules
RecurrenceType
Recurrence pattern type. Only present when isRecurring is true.
CalendarPreviewEventDto
uidExternal event ID — Google event ID, iCal UID, or Microsoft event ID
eventTitleOriginal event title from the calendar
startTimeEvent start time
endTimeEvent end time
matchedTrue if at least one room matched the event title
includeWhether to include this event in the confirm step. Defaults to true when matched, false when unmatched.
Rooms matched from the event title. Empty when matched=false.
isRecurringTrue if the event is a recurring event (daily or weekly pattern)
recurrenceTypeRecurrence pattern type. Only present when isRecurring is true.
recurrenceDaysDays of week the event recurs on (0=Sun … 6=Sat). Only present for weekly recurrence.
CalendarPreviewResponseDto
List of calendar events parsed from the calendar source, each with room-match results.
totalMatchedNumber of events that matched at least one room
totalUnmatchedNumber of events that matched no room
ScheduleType
Schedule type: single one-time schedule or recurring weekly schedule
ConfirmCalendarEventDto
uidExternal event ID (from preview response)
eventTitleEvent title (used for mapping storage)
startTimeEvent start time (may be user-adjusted)
endTimeEvent end time (may be user-adjusted)
includeSet to false to skip this event — no schedules will be created for it
roomIdsRoom IDs to schedule (may be user-adjusted from preview)
scheduleTypeSchedule type: single one-time schedule or recurring weekly schedule
daysOfWeekDays of week for recurring schedule (0=Sun … 6=Sat). Required when scheduleType is RECURRING.
onTimeON time for recurring schedule in HH:MM format. Required when scheduleType is RECURRING.
offTimeOFF time for recurring schedule in HH:MM format. Required when scheduleType is RECURRING.
ConfirmCalendarUploadDto
List of calendar events to confirm. Must contain at least one entry.
gracePeriodMinutesGrace period in minutes. Devices turn ON this many minutes before the event starts and turn OFF this many minutes after it ends. Only applies to one-time (SINGLE) schedules. Defaults to 0.
CalendarImportResultDto
importedNumber of events for which schedules were successfully created
skippedNumber of events skipped (include=false, past, or no devices in room)
PreviewIcsUrlDto
icsUrlPublicly accessible ICS calendar feed URL. Must be a valid HTTPS URL pointing to a .ics file. Private/internal network addresses are not permitted.
ConfirmIcsUrlDto
icsUrlPublicly accessible ICS calendar feed URL. Saved for ongoing background polling. Must be HTTPS; private/internal addresses are not permitted.
List of calendar events to confirm. Must contain at least one entry.
gracePeriodMinutesGrace period in minutes. Devices turn ON this many minutes before the event starts and turn OFF this many minutes after it ends. Saved for ongoing syncs. Defaults to 0.
SubscribeIcsUrlDto
icsUrlPublicly accessible ICS calendar feed URL. Must be a valid HTTPS URL pointing to a .ics file. Private/internal network addresses are not permitted.
gracePeriodMinutesGrace period in minutes. Devices turn ON this many minutes before the event starts and turn OFF this many minutes after it ends. Defaults to 0.
CalendarType
The calendar provider type for this connection (e.g., GOOGLE, MICROSOFT, ICS)
ConnectionScope
Scope of this connection — whether it applies system-wide or per-user
CalendarConnectionResponseDto
idUnique identifier of the calendar connection
systemIdSystem this calendar connection belongs to
calendarTypeThe calendar provider type for this connection (e.g., GOOGLE, MICROSOFT, ICS)
scopeScope of this connection — whether it applies system-wide or per-user
isActiveWhether this calendar connection is currently active
createdAtTimestamp when this calendar connection was created
userIdAdmin user ID that owns this connection; null indicates a system-wide connection
googleCalendarIdGoogle Calendar ID used for this connection (e.g., "primary")
icsUrlICS feed URL for ICS-type calendar connections
lastSyncedAtTimestamp of the last successful sync for this connection
EntityTypeResponseDto
_idEntity type ID
nameUnique type key
displayNameHuman-readable display name
systemSystem ID this type belongs to
createdAtCreation timestamp
createdByAdmin who created this type
EntityTypeListResponseDto
totalCreateEntityTypeDto
nameUnique type key — must be UPPER_SNAKE_CASE, unique within the system
displayNameHuman-readable display name
CreateFloorPlanDto
zoneIdZone ID to link this floor plan to
nameDisplay name for this floor plan
jsonFloor plan JSON (validated server-side via Zod)
FloorPlan
_idzoneZone this floor plan belongs to
systemSystem this floor plan belongs to
nameDisplay name for this floor plan
schemaVersionFloor plan JSON schema version
jsonFull floor plan JSON scene model
roomMappingsMappings from AI room IDs to real Room documents
EditFloorPlanDto
messageNatural language edit instruction
EditFloorPlanResponseDto
jsonUpdated floor plan JSON after patch applied
reasoningHuman-readable explanation of what the AI changed
CreateIssueDto
titleIssue title
bodyIssue body
labelsLabels to add
assigneesAssignees to add
imageUrlPublic URL of an image to embed
imageImage file to upload and embed
IssueDto
idnumbertitlebodystateurlcreatedAtauthorLoginauthorAvatarUrlauthorUrllabelsassigneesReleaseNoteDto
tagNameGit tag version of the release
titleTitle of the release (usually same as tag or human readable)
bodyFull markdown content of the release note
publishedAtDate when the release was published
urlURL linking to the release on GitHub
developerNameName of the developer who created the release
developerUrlURL of the developer's GitHub profile
developerAvatarUrlAvatar URL of the developer who created the release
PaymentMethod
Method used for payment processing. Determines the payment gateway and processing flow.
PaymentStatus
Current status of the payment transaction. Tracks the payment lifecycle from pending to completion or failure.
PaymentValidityPeriod
Duration of the subscription period covered by this payment. Determines how long the system will have access to paid features.
CreatePaymentDto
amountPayment amount in the base currency. Represents the total cost for the subscription period.
paymentMethodMethod used for payment processing. Determines the payment gateway and processing flow.
statusCurrent status of the payment transaction. Tracks the payment lifecycle from pending to completion or failure.
externalPaymentIdExternal reference ID from the payment gateway. Used for tracking and reconciliation with third-party payment providers.
adminIdUnique identifier of the admin who initiated the payment. Links the payment to the admin account.
systemIdUnique identifier of the system for which the payment is made. Links the payment to the system subscription.
paymentDateDate and time when the payment was processed. Used for billing records and subscription start date calculation.
validityPeriodDuration of the subscription period covered by this payment. Determines how long the system will have access to paid features.
subscriptionTierIdUnique identifier of the subscription tier being purchased. Determines the feature set and limitations for the payment period.
messageAdditional notes or transaction details. Useful for documenting special circumstances or payment gateway responses.
Payment
_idThe unique identifier of the subscription tier
amountPayment amount
paymentMethodPayment method
paymentDatePayment Date
validityPeriodPayment validity period
statusPayment status
externalPaymentIdExternal payment ID
adminAdmin ID reference
systemSystem ID reference
The subscription tier associated with the payment
createdAtThe date when the payment was created
updatedAtThe date when the payment was last updated
isDeletedIndicates whether the payment is deleted
messageOptional message or reason for the payment status update
GetPaymentsDto
Array of payment records
totalTotal number of payments matching the filter
pageCurrent page number
sizeNumber of items per page
UpdatePaymentStatusDto
statusNew payment status to update. Used to transition the payment through its lifecycle (pending, completed, failed, refunded).
messageAdditional notes explaining the status update. Useful for documenting reasons for failures, refunds, or special circumstances.
CreateSubscriptionTierDto
nameName of the subscription tier. Used for identification and display to customers.
descriptionDetailed description of what the subscription tier includes. Helps customers understand the value proposition.
monthlyPriceMonthly subscription price in the base currency. Billed on a monthly basis.
quarterlyPriceQuarterly subscription price in the base currency. Typically offered at a discount compared to monthly pricing.
yearlyPriceAnnual subscription price in the base currency. Usually offers the best value with maximum discount.
featuresArray of feature identifiers included in this subscription tier. Determines which features are accessible to subscribers.
UpdateSubscriptionTierDto
nameName of the subscription tier. Used for identification and display to customers.
descriptionDetailed description of what the subscription tier includes. Helps customers understand the value proposition.
monthlyPriceMonthly subscription price in the base currency. Billed on a monthly basis.
quarterlyPriceQuarterly subscription price in the base currency. Typically offered at a discount compared to monthly pricing.
yearlyPriceAnnual subscription price in the base currency. Usually offers the best value with maximum discount.
featuresArray of feature identifiers included in this subscription tier. Determines which features are accessible to subscribers.
TelegramStatusResponseDto
connectedWhether this system has a Telegram group linked
groupNameName of the linked Telegram group
TelegramPairingCodeResponseDto
codeShort pairing code the admin sends in their Telegram group
expiresInSeconds until the code expires
RegisterWebhookResponseDto
okWhether the request was successful
resultTelegram API result
descriptionDescription from Telegram
CreateProductDto
nameName of the product
pricePrice of the product
descriptionDescription of the product
UpdateProductDto
nameName of the product
descriptionDescription of the product
pricePrice of the product
GenerateNfcTokenResponseDto
tokenEncrypted NFC token
publicUrlPublic URL for NFC page
nfcIdNFC document ID
targetTypeTarget type
targetIdTarget ID (room or device)
targetNameTarget name
createdAtCreated at timestamp
NfcTokenInfoDto
nfcIdNFC document ID
targetTypeTarget type
targetIdTarget ID
targetNameTarget name
usageCountToken usage count
isActiveWhether token is active
tokenEncrypted token string
createdAtCreated at timestamp
expiresAtOptional expiration date
ListNfcTokensResponseDto
List of NFC tokens
totalTotal number of tokens
NfcToggleDto
onStatusTarget device status
deviceIdOptional device ID to toggle specific device in room (room tokens only)
NfcToggleResponseDto
successfulSuccessfully toggled device IDs
failedFailed device IDs
totalTotal devices attempted
actionAction performed
targetNameTarget name
NfcAnalyticsQueryDto
startDateStart date for analytics query
endDateEnd date for analytics query
NfcTargetInfoDto
idTarget ID
nameTarget name
typeType of NFC target (DEVICE, ROOM, USER)
onStatusDevice ON/OFF status (only for DEVICE targets)
NfcControllableFeaturesDto
temperatureWhether temperature control is supported
modeWhether operating mode control is supported
fanWhether fan speed control is supported
swingWhether swing control is supported
NfcGangSwitchStateDto
gangNumberGang number (1-4)
onStatusON/OFF status of this gang
labelOptional label for the gang
NfcDeviceInfoDto
idDevice ID
nameDevice name
deviceTypeType of device (PLUG, MCB, etc.)
onStatusDevice ON/OFF status
temperatureTemperature setting in Celsius (AIRCON_CONTROL only)
modeAircon operating mode (AIRCON_CONTROL only)
fanFan speed setting (AIRCON_CONTROL only)
swingSwing setting (AIRCON_CONTROL only)
brandAircon brand (AIRCON_CONTROL only)
Indicates which control features are physically supported by this aircon (AIRCON_CONTROL only)
numberOfGangsNumber of gangs/buttons on the switch (SMART_SWITCH only)
Individual gang switch states (SMART_SWITCH only)
switchTypeType of appliance the switch controls (SMART_SWITCH only)
totalEnergyUsageTotal energy usage in watt-hours (PLUG/MCB only)
DateRangeDto
startDateStart date of the queried range
endDateEnd date of the queried range
NfcAnalyticsResponseDto
Target information
Usage history data by day with cost breakdown
Date range queried
deviceTypeDevice type (for device-level tokens only)
Device details with current state (for device-level tokens)
Room details (for room-level tokens)
Device list (only for ROOM tokens, includes all toggleable devices in the room)
NfcAirconControlDto
deviceIdSpecific device ID to control (for room-level tokens)
powerPower ON/OFF control
temperatureTemperature setting in Celsius (16-30)
modeAircon operating mode
fanFan speed setting
swingSwing setting for aircon vents
NfcControlResponseDto
successWhether the control operation was successful
messageHuman-readable message describing the result
Updated device information after control operation
NfcSmartSwitchControlDto
deviceIdSpecific device ID to control (for room-level tokens)
powerPower ON/OFF control
gangNumberGang number to control (1-4). Omit to control all gangs.
onStatusON/OFF status for the targeted gang(s)
NfcControlDto
deviceIdSpecific device ID to control (for room-level tokens)
powerPower ON/OFF control
NewsletterSubscriberDto
emailSubscriber email address
nameSubscriber name
subscribedFromSourceSubscriber source
NewsletterSubscriberStatus
Status of the newsletter subscriber
NewsletterSubscriberResponseDto
_idUnique identifier of the newsletter subscriber
emailEmail of the newsletter subscriber
statusStatus of the newsletter subscriber
nameName of the newsletter subscriber
subscribedFromIpIP address from which the user subscribed
subscribedFromSourceSource from which the user subscribed
createdAtTimestamp when the subscriber was created
updatedAtTimestamp when the subscriber was last updated
EmailRecipientsType
Type of recipient list for the email campaign
ManualSelectionRecipientDto
recipientTypeType of recipient
recipientIdID of the recipient
CreateEmailCampaignDto
nameName of the email campaign
templateIdID of the newsletter template to use for the email campaign
recipientTypeType of recipient list for the email campaign
subjectSubject of the campaign email
List of manually selected recipients with their types (required if recipientType is MANUAL_SELECTION)
scheduledAtScheduled send time for the email campaign in ISO 8601 format
EmailCampaignStatus
Current status of the email campaign
EmailCampaign
_idUnique identifier of the email campaign
nameName of the email campaign
sourceTemplateReference to the original template used for this email campaign
subjectSubject of the campaign email
designJsonCopied JSON from template for campaign-specific email customization
renderedHtmlRendered HTML content for this email campaign
plainTextPlain text version of the email campaign
previewTextShort text that appears in email preview before opening
recipientTypeType of recipients for the email campaign
List of manually selected recipients with their types (if recipientType is MANUAL_SELECTION)
statusCurrent status of the email campaign
scheduledAtScheduled send time for the email campaign
scheduleNameAWS EventBridge Scheduler name for the scheduled campaign send
sentAtTime when the email campaign was sent
totalRecipientsTotal number of recipients for the email campaign
errorMessageError message if campaign sending failed
createdByAdmin who created the campaign
updatedByAdmin who last updated the campaign
SendEmailCampaignDto
campaignIdID of the email campaign to be sent
statusCurrent status of the email campaign
messageResult message after attempting to send the email campaign
totalRecipientsTotal number of recipients for the email campaign
SendTestEmailRequestDto
testEmailEmail address to send the test email to
testNameName of the test recipient for personalization
GetEmailCampaignsDto
List of email campaigns
totalTotal number of email campaigns
UpdateEmailCampaignDto
nameName of the email campaign
subjectSubject of the campaign email
recipientTypeType of recipient list for the email campaign
List of manually selected recipients with their types (used when recipientType is MANUAL_SELECTION)
designJsonUnlayer design JSON for campaign-specific email customization
renderedHtmlRendered HTML content of the email campaign
plainTextPlain text version of the email campaign
previewTextShort text that appears in email preview before opening
scheduledAtScheduled send time for the email campaign in ISO 8601 format. Set to null to convert SCHEDULED to DRAFT.
EmailTemplateDto
nameName of the email template
subjectSubject of the email template
designJsonJSON structure of the email template
descriptionDescription of the email template
previewTextPreview text for the email template
renderedHtmlRendered HTML content of the email template
plainTextPlain text version of the email template
EmailTemplateStatus
Indicates status of the email template
EmailTemplate
_idUnique identifier of the email template
nameName of the email template
descriptionDescription of the email template
subjectSubject of the email template
designJsonJSON from Unlayer editor
renderedHtmlCompiled HTML content of the email template
plainTextPlain text version of the email template
previewTextShort text that appears in email preview before opening
statusIndicates status of the email template
thumbnailUrlThumbnail image of the template for superadmin dashboard
createdByAdmin who created the template
updatedByAdmin who last updated the template
GetEmailTemplatesDto
List of email templates
totalTotal number of email templates
PreviewEmailTemplateDto
renderedHtmlRendered HTML preview of the email template
plainTextPlain text version of the email template preview
UpdateEmailTemplateDto
nameName of the email template
descriptionDescription of the email template
subjectSubject of the email template
designJsonJSON structure of the email template
previewTextPreview text for the email template
renderedHtmlRendered HTML content of the email template
plainTextPlain text version of the email template
statusStatus of the email template
DeviceHealthItemDto
deviceIdDevice ID
deviceNameDevice name or macId
healthScoreHealth score 0-100
healthStatusHealth status
openAnomalyCountNumber of open anomalies
monitoringEnabledWhether predictive maintenance monitoring is active for this device
mlRiskScoreML model anomaly risk score 0.0–1.0
mlIsAnomalyWhether ML model flagged this device as anomalous
DeviceHealthSummaryDto
totalTotal device count (after filtering)
pageCurrent page number
sizeItems per page
DeviceAnomalyResponseDto
_idAnomaly ID
deviceDevice ID
systemSystem ID
anomalyTypeseveritydetectedAtbaselineValueactualValuedeviationPercentageexplanationstatusnotesStaff notes about this anomaly
PaginatedAnomaliesDto
totalpagesizeDeviceBaselineDataDto
dayTypecalculatedAtWhen baseline was last calculated
windowDaysRolling window in days
healthScoreHealth score 0-100
hourlyAvgUsageAverage hourly energy usage (kWh) while ON
hourlyStdDevStd dev of hourly usage
dailyAvgUsageAverage daily energy usage (kWh)
dailyStdDevStd dev of daily usage
peakHourAvgPeak hour average usage (kWh)
offPeakHourAvgOff-peak hour average usage (kWh)
avgPowerFactorAverage power factor
avgCurrentAverage current (A)
avgVoltageAverage voltage (V)
avgPowerAverage power (W)
avgCyclesPerDayAverage on/off cycles per day
avgActiveHoursPerDayAverage active hours per day
monitoringEnabledWhether monitoring is enabled
baselineResetAtWhen baseline was last reset
mlRiskScoreML anomaly risk score 0.0–1.0
mlIsAnomalyWhether ML flagged as anomalous
mlScoredAtWhen ML score was last updated
DeviceDetailResponseDto
deviceIdDevice ID
All anomalies for this device
Weekday baseline
Weekend baseline
UpdateAnomalyStatusDto
statusNew status for the anomaly
notesNotes about what happened or actions taken
BulkMonitoringRequestDto
deviceIdsDevice IDs to enable or disable monitoring for
BulkResetBaselineResponseDto
affectedNumber of devices reset
deviceIdsDevice IDs that were successfully reset
baselineResetAtTimestamp the reset was triggered
weekdayRecalibratingUntilWeekday anomaly detection resumes after this date (28 days from reset)
weekendRecalibratingUntilWeekend anomaly detection resumes after this date (70 days from reset)
messageHuman-readable confirmation message
BulkMonitoringResponseDto
affectedNumber of devices affected
deviceIdsDevice IDs that were successfully updated
messageHuman-readable confirmation message
MlTrainingResponseDto
samplesUsedNumber of baseline samples used to train the model
ConsumerOrderLocation
Location of the customer
ConsumerOrderHousingType
Type of housing
CreateConsumerOrderDto
firstNameFirst name of the customer
lastNameLast name of the customer
mobileMobile number of the customer
emailEmail address of the customer
locationLocation of the customer
housingTypeType of housing