Power.Dev Optimization Services

<back to all web services

CommonOptimizerRequest

The following routes are available for this service:
POST/optimizer/ftm
POST/optimizer/common
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using powerDev.Optimization.ServiceModel;
using powerDev.Common.Models;
using powerDev.Common.Types;
using powerDev.Common.Types.Enums;

namespace powerDev.Common.Models
{
    public partial class BatteryProjectForOptimizer
    {
        public virtual Guid ProjectId { get; set; }
        public virtual string Version { get; set; }
        public virtual Guid BaseId { get; set; }
        public virtual int AltId { get; set; }
        public virtual BatterySimulationType SimulationType { get; set; }
        public virtual BatteryProjectGroup ProjectGroup { get; set; }
        public virtual BatteryProjectAction ProjectAction { get; set; }
        public virtual DataProvider Iso { get; set; }
        public virtual string Name { get; set; }
        public virtual int BaseNodeId { get; set; }
        public virtual int OrgNodeId { get; set; }
        public virtual int BaseZoneId { get; set; }
        public virtual BatteryDataSoruce DataSource { get; set; }
        public virtual PriceMarketType BaseMarket { get; set; }
        public virtual TimeGranularity PriceGranularity { get; set; }
        public virtual DateTime StartDate { get; set; }
        public virtual DateTime EndDate { get; set; }
        public virtual decimal BatteryCapacity { get; set; }
        public virtual decimal InterconnectionLimit { get; set; }
        public virtual decimal NamepaletCapacity { get; set; }
        [Ignore]
        public virtual decimal ChargeDischargeLimit { get; set; }

        [Ignore]
        public virtual decimal BaseCapacityRate { get; set; }

        [Ignore]
        public virtual decimal CapacityRate { get; set; }

        public virtual decimal ChargeEfficiency { get; set; }
        public virtual decimal DisChargeEfficiency { get; set; }
        public virtual decimal ParaciticLossesOperation { get; set; }
        public virtual decimal ParaciticLossesResting { get; set; }
        public virtual decimal HVACLosses { get; set; }
        public virtual decimal AcCablingLosses { get; set; }
        public virtual decimal TransformatorLosses { get; set; }
        public virtual decimal ThermalLosses { get; set; }
        public virtual decimal OtherLosses { get; set; }
        public virtual BooleanValue UseEnergy { get; set; }
        public virtual BooleanValue UseCapacity { get; set; }
        public virtual CapacityMethod CapacityBasis { get; set; }
        public virtual decimal CapacityPayment { get; set; }
        public virtual decimal NetCapacityFactor { get; set; }
        public virtual BooleanValue UseAncillary { get; set; }
        public virtual BatteryProductionDataSource ProductionDataSource { get; set; }
        public virtual PowerPlantType PowerPlantType { get; set; }
        public virtual decimal SolarAcCapacity { get; set; }
        public virtual decimal SolarDcCapacity { get; set; }
        public virtual decimal WindAcCapacity { get; set; }
        [Ignore]
        public virtual decimal SolarCapacityRate { get; set; }

        [Ignore]
        public virtual decimal WindCapacityRate { get; set; }

        public virtual int Status { get; set; }
        public virtual int SimulationStatus { get; set; }
        public virtual DateTime LastSimulationDate { get; set; }
        public virtual DateTime DataStartDate { get; set; }
        public virtual DateTime DataEndDate { get; set; }
        public virtual int SolarId { get; set; }
        public virtual int WindId { get; set; }
        public virtual int LmpFileId { get; set; }
        public virtual int ProductionFileId { get; set; }
        public virtual int LoadFileId { get; set; }
        public virtual int CapacityFileId { get; set; }
        public virtual int NodeAltId { get; set; }
        public virtual int NodeRefId { get; set; }
        public virtual decimal UseRegup { get; set; }
        public virtual decimal UseRegdown { get; set; }
        public virtual decimal UseSpinning { get; set; }
        public virtual decimal UseNonSpinning { get; set; }
        public virtual decimal SolarDegredation { get; set; }
        public virtual decimal BatteryDegredation { get; set; }
        public virtual decimal Augmentation { get; set; }
        public virtual decimal AugmentationFrequency { get; set; }
        public virtual decimal EnergyIncrement { get; set; }
        public virtual decimal AncillaryIncrement { get; set; }
        public virtual int EnableGridArbitrage { get; set; }
        public virtual int IncrementReferanceYear { get; set; }
        public virtual int RepresentativeYear { get; set; }
        public virtual int UseFutureData { get; set; }
        public virtual decimal MaxDailyCycle { get; set; }
        public virtual decimal MinDailyProfitPerMw { get; set; }
        public virtual int AncillaryFileId { get; set; }
        public virtual decimal MaxChargingPriceCap { get; set; }
        public virtual decimal MaxDischargingPriceCap { get; set; }
        public virtual decimal MaxAncillaryPriceCap { get; set; }
        public virtual RevenueStackingMode RevenueStackingMode { get; set; }
        public virtual int OptimizationQuality { get; set; }
        public virtual bool UseInternalSolver { get; set; }
    }

    public partial class CommonOptimizerPortalRequestBase
    {
        public virtual Guid ProjectId { get; set; }
        public virtual bool IsBatchSimulation { get; set; }
        public virtual bool Force { get; set; }
        public virtual bool DisableEBSSpot { get; set; }
        public virtual bool IsServerless { get; set; }
        public virtual Guid ApiActionId { get; set; }
        public virtual int NodeId { get; set; }
        public virtual int ParallelProject { get; set; }
        public virtual int ParallelYears { get; set; }
        public virtual int EnsureExlusive { get; set; }
    }

    public partial class CommonOptimizerResponse
    {
        public virtual ApiResponseStatus Status { get; set; }
        public virtual string Message { get; set; }
        public virtual Guid ApiActionId { get; set; }
        public virtual string Detail { get; set; }
        public virtual IEnumerable<BatteryProjectForOptimizer> Items { get; set; }
    }

}

namespace powerDev.Common.Types
{
    public enum ApiResponseStatus
    {
        Undefined = 0,
        Success = 1,
        Pending = 10,
        Failed = 100,
    }

    public enum BatteryDataSoruce
    {
        Undefined,
        Merchant,
        Future,
        TOD,
    }

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

    public enum BatteryProjectGroup
    {
        Undefined,
        StandAlone,
        FTM,
        BTM,
    }

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

    public enum DataProvider
    {
        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,
    }

    public enum PriceMarketType
    {
        Undefined = 0,
        Realtime = 1,
        DayAhead = 10,
        DART = 101,
    }

    public enum TimeGranularity
    {
        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,
    }

}

namespace powerDev.Common.Types.Enums
{
    public enum BatteryProductionDataSource
    {
        Undefined,
        SetClosest,
        UploadedFile,
    }

    public enum BatterySimulationType
    {
        Undefined = 0,
        SingleRun = 1,
        BatchSimulation = 2,
        BatchSub = 21,
        Siting = 100,
    }

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

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

    public enum RevenueStackingMode
    {
        SolveWithoutAncillary,
        SolveWithAncillary,
    }

}

namespace powerDev.Optimization.ServiceModel
{
    public partial class CommonOptimizerRequest
        : CommonOptimizerPortalRequestBase
    {
    }

}

C# CommonOptimizerRequest DTOs

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

HTTP + OTHER

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: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"projectId":"00000000000000000000000000000000","isBatchSimulation":false,"force":false,"disableEBSSpot":false,"isServerless":false,"apiActionId":"00000000000000000000000000000000","nodeId":0,"parallelProject":0,"parallelYears":0,"ensureExlusive":0}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"status":"Undefined","message":"String","apiActionId":"00000000000000000000000000000000","detail":"String"}