Power.Dev Optimization Services

<back to all web services

CommonOptimizerRequest

The following routes are available for this service:
POST/optimizer/ftm
POST/optimizer/common
import java.math.*
import java.util.*
import net.servicestack.client.*


open class CommonOptimizerRequest : CommonOptimizerPortalRequestBase()
{
}

open class CommonOptimizerPortalRequestBase
{
    var projectId:UUID? = null
    var isBatchSimulation:Boolean? = null
    var force:Boolean? = null
    var disableEBSSpot:Boolean? = null
    var isServerless:Boolean? = null
    var apiActionId:UUID? = null
    var nodeId:Int? = null
    var parallelProject:Int? = null
    var parallelYears:Int? = null
    var ensureExlusive:Int? = null
}

open class CommonOptimizerResponse
{
    var status:ApiResponseStatus? = null
    var message:String? = null
    var apiActionId:UUID? = null
    var detail:String? = null
    var items:ArrayList<BatteryProjectForOptimizer> = ArrayList<BatteryProjectForOptimizer>()
}

enum class ApiResponseStatus(val value:Int)
{
    Undefined(0),
    Success(1),
    Pending(10),
    Failed(100),
}

open class BatteryProjectForOptimizer
{
    var projectId:UUID? = null
    var version:String? = null
    var baseId:UUID? = null
    var altId:Int? = null
    var simulationType:BatterySimulationType? = null
    var projectGroup:BatteryProjectGroup? = null
    var projectAction:BatteryProjectAction? = null
    var iso:DataProvider? = null
    var name:String? = null
    var baseNodeId:Int? = null
    var orgNodeId:Int? = null
    var baseZoneId:Int? = null
    var dataSource:BatteryDataSoruce? = null
    var baseMarket:PriceMarketType? = null
    var priceGranularity:TimeGranularity? = null
    var startDate:Date? = null
    var endDate:Date? = null
    var batteryCapacity:BigDecimal? = null
    var interconnectionLimit:BigDecimal? = null
    var namepaletCapacity:BigDecimal? = null
    @Ignore()
    var chargeDischargeLimit:BigDecimal? = null

    @Ignore()
    var baseCapacityRate:BigDecimal? = null

    @Ignore()
    var capacityRate:BigDecimal? = null

    var chargeEfficiency:BigDecimal? = null
    var disChargeEfficiency:BigDecimal? = null
    var paraciticLossesOperation:BigDecimal? = null
    var paraciticLossesResting:BigDecimal? = null
    var hvacLosses:BigDecimal? = null
    var acCablingLosses:BigDecimal? = null
    var transformatorLosses:BigDecimal? = null
    var thermalLosses:BigDecimal? = null
    var otherLosses:BigDecimal? = null
    var useEnergy:BooleanValue? = null
    var useCapacity:BooleanValue? = null
    var capacityBasis:CapacityMethod? = null
    var capacityPayment:BigDecimal? = null
    var netCapacityFactor:BigDecimal? = null
    var useAncillary:BooleanValue? = null
    var productionDataSource:BatteryProductionDataSource? = null
    var powerPlantType:PowerPlantType? = null
    var solarAcCapacity:BigDecimal? = null
    var solarDcCapacity:BigDecimal? = null
    var windAcCapacity:BigDecimal? = null
    @Ignore()
    var solarCapacityRate:BigDecimal? = null

    @Ignore()
    var windCapacityRate:BigDecimal? = null

    var status:Int? = null
    var simulationStatus:Int? = null
    var lastSimulationDate:Date? = null
    var dataStartDate:Date? = null
    var dataEndDate:Date? = null
    var solarId:Int? = null
    var windId:Int? = null
    var lmpFileId:Int? = null
    var productionFileId:Int? = null
    var loadFileId:Int? = null
    var capacityFileId:Int? = null
    var nodeAltId:Int? = null
    var nodeRefId:Int? = null
    var useRegup:BigDecimal? = null
    var useRegdown:BigDecimal? = null
    var useSpinning:BigDecimal? = null
    var useNonSpinning:BigDecimal? = null
    var solarDegredation:BigDecimal? = null
    var batteryDegredation:BigDecimal? = null
    var augmentation:BigDecimal? = null
    var augmentationFrequency:BigDecimal? = null
    var energyIncrement:BigDecimal? = null
    var ancillaryIncrement:BigDecimal? = null
    var enableGridArbitrage:Int? = null
    var incrementReferanceYear:Int? = null
    var representativeYear:Int? = null
    var useFutureData:Int? = null
    var maxDailyCycle:BigDecimal? = null
    var minDailyProfitPerMw:BigDecimal? = null
    var ancillaryFileId:Int? = null
    var maxChargingPriceCap:BigDecimal? = null
    var maxDischargingPriceCap:BigDecimal? = null
    var maxAncillaryPriceCap:BigDecimal? = null
    var revenueStackingMode:RevenueStackingMode? = null
    var optimizationQuality:Int? = null
    var useInternalSolver:Boolean? = null
}

enum class BatterySimulationType(val value:Int)
{
    Undefined(0),
    SingleRun(1),
    BatchSimulation(2),
    BatchSub(21),
    Siting(100),
}

enum class BatteryProjectGroup
{
    Undefined,
    StandAlone,
    Ftm,
    Btm,
}

enum class BatteryProjectAction
{
    Undefined,
    Arbitrage,
    PeakShaving,
    Smooting,
    Firming,
}

enum class DataProvider(val value:Int)
{
    Undefined(0),
    Spp(1),
    Ercot(2),
    Miso(3),
    Caiso(4),
    Pjm(5),
    Isone(6),
    Nyiso(7),
    Nw(8),
    Sw(9),
    Se(10),
    Aeso(11),
    Ieso(12),
    Cenace(20),
    Noniso(99),
    Eia(100),
    Pnm(150),
    Nrel(200),
    Noaa(210),
    Entsoe(1000),
    Epias(1010),
    Self(10000),
}

enum class BatteryDataSoruce
{
    Undefined,
    Merchant,
    Future,
    Tod,
}

enum class PriceMarketType(val value:Int)
{
    Undefined(0),
    Realtime(1),
    DayAhead(10),
    Dart(101),
}

enum class TimeGranularity(val value:Int)
{
    Undefined(0),
    Hourly(1),
    Daily(2),
    Weekly(3),
    Monthy(4),
    Yearly(5),
    Fivemin(10),
    Tenmin(11),
    Fifteenmin(12),
    Halfhour(13),
    Quarterly(14),
    Twohours(21),
    Threehours(22),
    Fourhours(24),
    Sixhours(26),
    Eighthours(28),
    Twelvehours(32),
    Irregular(100),
}

enum class BooleanValue
{
    Undefined,
    Yes,
    No,
    Custom,
}

enum class CapacityMethod
{
    Undefined,
    Annual,
    Tod,
    Schedule,
}

enum class BatteryProductionDataSource
{
    Undefined,
    SetClosest,
    UploadedFile,
}

enum class PowerPlantType
{
    Undefined,
    Solar,
    Wind,
    Hybrid,
}

enum class RevenueStackingMode
{
    SolveWithoutAncillary,
    SolveWithAncillary,
}

Kotlin CommonOptimizerRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /optimizer/ftm HTTP/1.1 
Host: dev-optimization.power.dev 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<CommonOptimizerRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/powerDev.Optimization.ServiceModel">
  <ApiActionId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">00000000-0000-0000-0000-000000000000</ApiActionId>
  <DisableEBSSpot xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">false</DisableEBSSpot>
  <EnsureExlusive xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">0</EnsureExlusive>
  <Force xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">false</Force>
  <IsBatchSimulation xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">false</IsBatchSimulation>
  <IsServerless xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">false</IsServerless>
  <NodeId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">0</NodeId>
  <ParallelProject xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">0</ParallelProject>
  <ParallelYears xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">0</ParallelYears>
  <ProjectId xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">00000000-0000-0000-0000-000000000000</ProjectId>
</CommonOptimizerRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CommonOptimizerResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/powerDev.Common.Models">
  <ApiActionId>00000000-0000-0000-0000-000000000000</ApiActionId>
  <Detail>String</Detail>
  <Items i:nil="true" />
  <Message>String</Message>
  <Status>Undefined</Status>
</CommonOptimizerResponse>