Inverter Controller

Contents

Inverter Controller#

pydantic model gdm.distribution.controllers.InverterController#

Inverter contoller represent the complete control settings for a given InverterEquipment. This model may be used with an instance of DistributionSolar, DistributionBattery or any other model that has an inverter.

Show JSON schema
{
   "title": "InverterController",
   "description": "Inverter contoller represent the complete control settings for a given\nInverterEquipment. This model may be used with an instance of DistributionSolar,\nDistributionBattery or any other model that has an inverter.",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "active_power_control": {
         "anyOf": [
            {
               "$ref": "#/$defs/ActivePowerInverterControllerBase"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Controller settings to control active power output of the inverter"
      },
      "reactive_power_control": {
         "anyOf": [
            {
               "$ref": "#/$defs/ReactivePowerInverterControllerBase"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Controller settings to control reactive power output of the inverter"
      },
      "prioritize_active_power": {
         "description": "If True, the controller tries to prioritize active power.",
         "title": "Prioritize Active Power",
         "type": "boolean"
      },
      "night_mode": {
         "description": "If True, the controller controls reactive power even when there is no active power.",
         "title": "Night Mode",
         "type": "boolean"
      }
   },
   "$defs": {
      "ActivePowerInverterControllerBase": {
         "additionalProperties": false,
         "description": "Data model for Inverter controllers that control active power.",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "description": "Name of the inverter controller.",
               "title": "Name",
               "type": "string"
            }
         },
         "title": "ActivePowerInverterControllerBase",
         "type": "object"
      },
      "ReactivePowerInverterControllerBase": {
         "additionalProperties": false,
         "description": "Data model for Inverter controllers that control reactive power.",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "description": "Name of the inverter controller.",
               "title": "Name",
               "type": "string"
            }
         },
         "title": "ReactivePowerInverterControllerBase",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "prioritize_active_power",
      "night_mode"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • active_power_control (gdm.distribution.controllers.base.inverter_controller_base.ActivePowerInverterControllerBase | None)

  • name (str)

  • night_mode (bool)

  • prioritize_active_power (bool)

  • reactive_power_control (gdm.distribution.controllers.base.inverter_controller_base.ReactivePowerInverterControllerBase | None)

  • uuid (uuid.UUID)

field active_power_control: Annotated[ActivePowerInverterControllerBase | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Controller settings to control active power output of the inverter')] = None#

Controller settings to control active power output of the inverter

field name: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field night_mode: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='If True, the controller controls reactive power even when there is no active power.')] [Required]#

If True, the controller controls reactive power even when there is no active power.

field prioritize_active_power: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='If True, the controller tries to prioritize active power.')] [Required]#

If True, the controller tries to prioritize active power.

field reactive_power_control: Annotated[ReactivePowerInverterControllerBase | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Controller settings to control reactive power output of the inverter')] = None#

Controller settings to control reactive power output of the inverter

Reactive Power Controls#

[](../../models/PowerfactorControlSetting.svg

pydantic model gdm.distribution.controllers.PowerfactorControlSetting#

Control settings for the Inverter Controller to represent power factor control. Works with both battery and solar systems. Controls reactive power output of the connected inverter

Show JSON schema
{
   "title": "PowerfactorControlSetting",
   "description": "Control settings for the  Inverter Controller to represent power factor control.\nWorks with both battery and solar systems. Controls reactive power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "power_factor": {
         "description": "The power factor used for the controller.",
         "maximum": 1.0,
         "minimum": -1.0,
         "title": "Power Factor",
         "type": "number"
      },
      "supported_by": {
         "const": "battery-and-solar",
         "default": "battery-and-solar",
         "title": "Supported By",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "power_factor"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • name (str)

  • power_factor (float)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_AND_SOLAR])

  • uuid (uuid.UUID)

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field power_factor: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='The power factor used for the controller.', metadata=[Ge(ge=-1), Le(le=1)])] [Required]#

The power factor used for the controller.

Constraints:
  • ge = -1

  • le = 1

field supported_by: Literal[ControllerSupport.BATTERY_AND_SOLAR] = ControllerSupport.BATTERY_AND_SOLAR#

pydantic model gdm.distribution.controllers.VoltVarControlSetting#

Control settings for the Inverter Controller to represent volt / var control settings. Works with both battery and solar systems. Controls reactive power output of the connected inverter

Show JSON schema
{
   "title": "VoltVarControlSetting",
   "description": "Control settings for the Inverter Controller to represent volt / var control settings.\nWorks with both battery and solar systems. Controls reactive power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "volt_var_curve": {
         "$ref": "#/$defs/Curve",
         "description": "The volt-var curve that is being applied."
      },
      "var_follow": {
         "description": "Set to false if you want inverter reactive power\n                        generation absorption to respect inverter status",
         "title": "Var Follow",
         "type": "boolean"
      },
      "supported_by": {
         "const": "battery-and-solar",
         "default": "battery-and-solar",
         "title": "Supported By",
         "type": "string"
      }
   },
   "$defs": {
      "Curve": {
         "additionalProperties": false,
         "description": "An interface for representing a curve using x and y points. e.g for volt-var and volt-watt curves.\n\nExamples\n--------\n\nExample of a Curve (Volt-Var IEEE-1547 standard).\n\n>>> Curve(\n        curve_x=[0.5, 0.92, 0.98, 1.02, 1.08, 1.5], curve_y=[1.0, 1.0, 0.0, 0.0, -1.0, -1.0]\n    )\n\nExample of a Curve (Volt-Var Volt-Watt IEEE-1547 standard)\n\n>>> Curve(curve_x=[0.5, 1.06, 1.1, 1.5], curve_y=[1.0, 1.0, 0.0, 0.0])",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "description": "Name of the curve.",
               "title": "Name",
               "type": "string"
            },
            "curve_x": {
               "anyOf": [
                  {
                     "items": {
                        "type": "number"
                     },
                     "type": "array"
                  },
                  {}
               ],
               "description": "The x values of the curve",
               "title": "Curve X"
            },
            "curve_y": {
               "anyOf": [
                  {
                     "items": {
                        "type": "number"
                     },
                     "type": "array"
                  },
                  {}
               ],
               "description": "The y values of the curve",
               "title": "Curve Y"
            }
         },
         "required": [
            "curve_x",
            "curve_y"
         ],
         "title": "Curve",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "volt_var_curve",
      "var_follow"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_AND_SOLAR])

  • uuid (uuid.UUID)

  • var_follow (bool)

  • volt_var_curve (gdm.distribution.common.curve.Curve)

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_AND_SOLAR] = ControllerSupport.BATTERY_AND_SOLAR#
field var_follow: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Set to false if you want inverter reactive power\n                        generation absorption to respect inverter status')] [Required]#

Set to false if you want inverter reactive power generation absorption to respect inverter status

field volt_var_curve: Annotated[Curve, FieldInfo(annotation=NoneType, required=True, description='The volt-var curve that is being applied.')] [Required]#

The volt-var curve that is being applied.

Active Power Controls#

pydantic model gdm.distribution.controllers.VoltWattControlSetting#

Control settings for the Inverter Controller to represent volt / watt control settings. Works with both battery and solar systems. Controls active power output of the connected inverter

Show JSON schema
{
   "title": "VoltWattControlSetting",
   "description": "Control settings for the Inverter Controller to represent volt / watt control settings.\nWorks with both battery and solar systems. Controls active power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "volt_watt_curve": {
         "$ref": "#/$defs/Curve",
         "description": "The volt-watt curve that is being applied."
      },
      "supported_by": {
         "const": "battery-and-solar",
         "default": "battery-and-solar",
         "title": "Supported By",
         "type": "string"
      }
   },
   "$defs": {
      "Curve": {
         "additionalProperties": false,
         "description": "An interface for representing a curve using x and y points. e.g for volt-var and volt-watt curves.\n\nExamples\n--------\n\nExample of a Curve (Volt-Var IEEE-1547 standard).\n\n>>> Curve(\n        curve_x=[0.5, 0.92, 0.98, 1.02, 1.08, 1.5], curve_y=[1.0, 1.0, 0.0, 0.0, -1.0, -1.0]\n    )\n\nExample of a Curve (Volt-Var Volt-Watt IEEE-1547 standard)\n\n>>> Curve(curve_x=[0.5, 1.06, 1.1, 1.5], curve_y=[1.0, 1.0, 0.0, 0.0])",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "description": "Name of the curve.",
               "title": "Name",
               "type": "string"
            },
            "curve_x": {
               "anyOf": [
                  {
                     "items": {
                        "type": "number"
                     },
                     "type": "array"
                  },
                  {}
               ],
               "description": "The x values of the curve",
               "title": "Curve X"
            },
            "curve_y": {
               "anyOf": [
                  {
                     "items": {
                        "type": "number"
                     },
                     "type": "array"
                  },
                  {}
               ],
               "description": "The y values of the curve",
               "title": "Curve Y"
            }
         },
         "required": [
            "curve_x",
            "curve_y"
         ],
         "title": "Curve",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "volt_watt_curve"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_AND_SOLAR])

  • uuid (uuid.UUID)

  • volt_watt_curve (gdm.distribution.common.curve.Curve)

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_AND_SOLAR] = ControllerSupport.BATTERY_AND_SOLAR#
field volt_watt_curve: Annotated[Curve, FieldInfo(annotation=NoneType, required=True, description='The volt-watt curve that is being applied.')] [Required]#

The volt-watt curve that is being applied.

pydantic model gdm.distribution.controllers.PeakShavingBaseLoadingControlSetting#

Control settings for the Inverter Controller to represent peak shaving / base loading control settings. Works with battery systems only. Controls active power output of the connected inverter. If the loading on the controlled element exceeds peak_shaving_target, the battery discharges to shave off peak load. If the loading drops below the base_loading_target, the battery charges to maintain minimum loading.

Show JSON schema
{
   "title": "PeakShavingBaseLoadingControlSetting",
   "description": "Control settings for the Inverter Controller to represent peak shaving / base loading\ncontrol settings. Works with battery systems only. Controls active power output of the\nconnected inverter. If the loading on the controlled element exceeds peak_shaving_target,\nthe battery discharges to shave off peak load. If the loading drops below the\nbase_loading_target, the battery charges to maintain minimum loading.",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "supported_by": {
         "const": "battery-only",
         "default": "battery-only",
         "title": "Supported By",
         "type": "string"
      },
      "peak_shaving_target": {
         "description": "The peak shaving target.",
         "title": "Peak Shaving Target"
      },
      "base_loading_target": {
         "description": "The base loading target.",
         "title": "Base Loading Target"
      }
   },
   "additionalProperties": false,
   "required": [
      "peak_shaving_target",
      "base_loading_target"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • base_loading_target (infrasys.quantities.ActivePower)

  • name (str)

  • peak_shaving_target (infrasys.quantities.ActivePower)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_ONLY])

  • uuid (uuid.UUID)

field base_loading_target: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='The base loading target.')] [Required]#

The base loading target.

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field peak_shaving_target: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='The peak shaving target.')] [Required]#

The peak shaving target.

field supported_by: Literal[ControllerSupport.BATTERY_ONLY] = ControllerSupport.BATTERY_ONLY#

pydantic model gdm.distribution.controllers.CapacityFirmingControlSetting#

Control settings for the Inverter Controller to represent capacity firming control settings. Works with battery systems only. Controls active power output of the connected inverter

Show JSON schema
{
   "title": "CapacityFirmingControlSetting",
   "description": "Control settings for the Inverter Controller to represent capacity firming\ncontrol settings. Works with battery systems only. Controls active power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "supported_by": {
         "const": "battery-only",
         "default": "battery-only",
         "title": "Supported By",
         "type": "string"
      },
      "max_active_power_roc": {
         "description": "Maximum allowable rate of charge for active power on the controlled bus.",
         "title": "Max Active Power Roc"
      },
      "min_active_power_roc": {
         "description": "Minimum allowable rate of charge for active power on the controlled bus.",
         "title": "Min Active Power Roc"
      }
   },
   "additionalProperties": false,
   "required": [
      "max_active_power_roc",
      "min_active_power_roc"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • max_active_power_roc (gdm.quantities.ActivePowerOverTime)

  • min_active_power_roc (gdm.quantities.ActivePowerOverTime)

  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_ONLY])

  • uuid (uuid.UUID)

field max_active_power_roc: Annotated[ActivePowerOverTime, FieldInfo(annotation=NoneType, required=True, description='Maximum allowable rate of charge for active power on the controlled bus.')] [Required]#

Maximum allowable rate of charge for active power on the controlled bus.

field min_active_power_roc: Annotated[ActivePowerOverTime, FieldInfo(annotation=NoneType, required=True, description='Minimum allowable rate of charge for active power on the controlled bus.')] [Required]#

Minimum allowable rate of charge for active power on the controlled bus.

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_ONLY] = ControllerSupport.BATTERY_ONLY#

pydantic model gdm.distribution.controllers.TimeBasedControlSetting#

Control settings for the Inverter Controller to represent time based charge / discharge control settings. Works with battery systems only. Controls active power output of the connected inverter

Show JSON schema
{
   "title": "TimeBasedControlSetting",
   "description": "Control settings for the Inverter Controller to represent time based charge / discharge\ncontrol settings. Works with battery systems only. Controls active power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "supported_by": {
         "const": "battery-only",
         "default": "battery-only",
         "title": "Supported By",
         "type": "string"
      },
      "charging_start_time": {
         "description": "The time at which the battery starts charging.",
         "format": "time",
         "title": "Charging Start Time",
         "type": "string"
      },
      "charging_end_time": {
         "description": "The time at which the battery stops charging.",
         "format": "time",
         "title": "Charging End Time",
         "type": "string"
      },
      "discharging_start_time": {
         "description": "The time at which the battery starts discharging.",
         "format": "time",
         "title": "Discharging Start Time",
         "type": "string"
      },
      "discharging_end_time": {
         "description": "The time at which the battery stops discharging.",
         "format": "time",
         "title": "Discharging End Time",
         "type": "string"
      },
      "charging_power": {
         "description": "The power to charge the battery.",
         "title": "Charging Power"
      },
      "discharging_power": {
         "description": "The power to discharge the battery.",
         "title": "Discharging Power"
      }
   },
   "additionalProperties": false,
   "required": [
      "charging_start_time",
      "charging_end_time",
      "discharging_start_time",
      "discharging_end_time",
      "charging_power",
      "discharging_power"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • charging_end_time (datetime.time)

  • charging_power (infrasys.quantities.ActivePower)

  • charging_start_time (datetime.time)

  • discharging_end_time (datetime.time)

  • discharging_power (infrasys.quantities.ActivePower)

  • discharging_start_time (datetime.time)

  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_ONLY])

  • uuid (uuid.UUID)

field charging_end_time: Annotated[time, FieldInfo(annotation=NoneType, required=True, description='The time at which the battery stops charging.')] [Required]#

The time at which the battery stops charging.

field charging_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='The power to charge the battery.')] [Required]#

The power to charge the battery.

field charging_start_time: Annotated[time, FieldInfo(annotation=NoneType, required=True, description='The time at which the battery starts charging.')] [Required]#

The time at which the battery starts charging.

field discharging_end_time: Annotated[time, FieldInfo(annotation=NoneType, required=True, description='The time at which the battery stops discharging.')] [Required]#

The time at which the battery stops discharging.

field discharging_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='The power to discharge the battery.')] [Required]#

The power to discharge the battery.

field discharging_start_time: Annotated[time, FieldInfo(annotation=NoneType, required=True, description='The time at which the battery starts discharging.')] [Required]#

The time at which the battery starts discharging.

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_ONLY] = ControllerSupport.BATTERY_ONLY#

pydantic model gdm.distribution.controllers.SelfConsumptionControlSetting#

Control settings for the Inverter Controller to represent self comsumption control settings. Works with battery systems only. Controls active power output of the connected inverter

Show JSON schema
{
   "title": "SelfConsumptionControlSetting",
   "description": "Control settings for the Inverter Controller to represent self comsumption\ncontrol settings. Works with battery systems only. Controls active power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "supported_by": {
         "const": "battery-only",
         "default": "battery-only",
         "title": "Supported By",
         "type": "string"
      }
   },
   "additionalProperties": false
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_ONLY])

  • uuid (uuid.UUID)

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_ONLY] = ControllerSupport.BATTERY_ONLY#

pydantic model gdm.distribution.controllers.TimeOfUseControlSetting#

Control settings for the Inverter Controller to represent time of use control settings. Works with battery systems only. Controls active power output of the connected inverter

Show JSON schema
{
   "title": "TimeOfUseControlSetting",
   "description": "Control settings for the Inverter Controller to represent time of use\ncontrol settings. Works with battery systems only. Controls active power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "supported_by": {
         "const": "battery-only",
         "default": "battery-only",
         "title": "Supported By",
         "type": "string"
      },
      "tarriff": {
         "title": "Tarriff"
      },
      "charging_power": {
         "description": "The power to charge the battery after TOU window.",
         "title": "Charging Power"
      }
   },
   "additionalProperties": false,
   "required": [
      "tarriff",
      "charging_power"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • charging_power (infrasys.quantities.ActivePower)

  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_ONLY])

  • tarriff (...)

  • uuid (uuid.UUID)

field charging_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='The power to charge the battery after TOU window.')] [Required]#

The power to charge the battery after TOU window.

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_ONLY] = ControllerSupport.BATTERY_ONLY#
field tarriff: ... [Required]#

pydantic model gdm.distribution.controllers.DemandChargeControlSetting#

Control settings for the Inverter Controller to represent demand charge focused control settings. Works with battery systems only. Controls active power output of the connected inverter

Show JSON schema
{
   "title": "DemandChargeControlSetting",
   "description": "Control settings for the Inverter Controller to represent demand charge focused\ncontrol settings. Works with battery systems only. Controls active power output of the\nconnected inverter",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "supported_by": {
         "const": "battery-only",
         "default": "battery-only",
         "title": "Supported By",
         "type": "string"
      },
      "tarriff": {
         "title": "Tarriff"
      },
      "charging_power": {
         "description": "The power to charge the battery after demand change window.",
         "title": "Charging Power"
      }
   },
   "additionalProperties": false,
   "required": [
      "tarriff",
      "charging_power"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • charging_power (infrasys.quantities.ActivePower)

  • name (str)

  • supported_by (Literal[gdm.distribution.enums.ControllerSupport.BATTERY_ONLY])

  • tarriff (...)

  • uuid (uuid.UUID)

field charging_power: Annotated[ActivePower, FieldInfo(annotation=NoneType, required=True, description='The power to charge the battery after demand change window.')] [Required]#

The power to charge the battery after demand change window.

field name: Annotated[str, Field('', description='Name of the inverter controller.')] = ''#

Name of the inverter controller.

field supported_by: Literal[ControllerSupport.BATTERY_ONLY] = ControllerSupport.BATTERY_ONLY#
field tarriff: ... [Required]#