{ "general": { "name": { "default": "Machine Group Configuration", "rules": { "type": "string", "description": "A human-readable name or label for this machine group configuration." } }, "id": { "default": null, "rules": { "type": "string", "nullable": true, "description": "A unique identifier for this configuration. If not provided, defaults to null." } }, "logging": { "logLevel": { "default": "info", "rules": { "type": "enum", "values": [ { "value": "debug", "description": "Log messages are printed for debugging purposes." }, { "value": "info", "description": "Informational messages are printed." }, { "value": "warn", "description": "Warning messages are printed." }, { "value": "error", "description": "Error messages are printed." } ] } }, "enabled": { "default": true, "rules": { "type": "boolean", "description": "Indicates whether logging is active. If true, log messages will be generated." } } } }, "functionality": { "softwareType": { "default": "machineGroup", "rules": { "type": "string", "description": "Logical name identifying the software type." } }, "role": { "default": "GroupController", "rules": { "type": "string", "description": "Controls a group of machines within the system." } } }, "mode": { "current": { "default": "optimalControl", "rules": { "type": "enum", "values": [ { "value": "optimalControl", "description": "The group controller selects the most optimal combination of machines based on their real-time performance curves." }, { "value": "priorityControl", "description": "Machines are controlled sequentially from minimum to maximum output until each is maxed out, then additional machines are added." }, { "value": "prioritypercentagecontrol", "description": "Machines are controlled sequentially from minimum to maximum output until each is maxed out, then additional machines are added based on a percentage of the total demand." }, { "value": "maintenance", "description": "The group is in maintenance mode with limited actions (monitoring only)." } ], "description": "The operational mode of the machine group controller." } }, "allowedActions": { "default": {}, "rules": { "type": "object", "schema": { "optimalControl": { "default": ["statusCheck", "execOptimalCombination", "balanceLoad", "emergencyStop"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in optimalControl mode." } }, "priorityControl": { "default": ["statusCheck", "execSequentialControl", "balanceLoad", "emergencyStop"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in priorityControl mode." } }, "prioritypercentagecontrol": { "default": ["statusCheck", "execSequentialControl", "balanceLoad", "emergencyStop"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in manualOverride mode." } }, "maintenance": { "default": ["statusCheck"], "rules": { "type": "set", "itemType": "string", "description": "Actions allowed in maintenance mode." } } }, "description": "Defines the actions available for each operational mode of the machine group controller." } }, "allowedSources": { "default": {}, "rules": { "type": "object", "schema": { "optimalcontrol": { "default": ["parent", "GUI", "physical", "API"], "rules": { "type": "set", "itemType": "string", "description": "Command sources allowed in optimalControl mode." } }, "prioritycontrol": { "default": ["parent", "GUI", "physical", "API"], "rules": { "type": "set", "itemType": "string", "description": "Command sources allowed in priorityControl mode." } }, "prioritypercentagecontrol": { "default": ["parent", "GUI", "physical", "API"], "rules": { "type": "set", "itemType": "string", "description": "Command sources allowed " } } }, "description": "Specifies the valid command sources recognized by the machine group controller for each mode." } } }, "scaling": { "current": { "default": "normalized", "rules": { "type": "enum", "values": [ { "value": "normalized", "description": "Scales the demand between 0–100% of the total flow capacity, interpolating to calculate the effective demand." }, { "value": "absolute", "description": "Uses the absolute demand value directly, capped between the min and max machine flow capacities." } ], "description": "The scaling mode for demand calculations." } } } }