Power.Dev Optimization Services

<back to all web services

TODOptimizerRequest

The following routes are available for this service:
POST/optimizer/tod
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;

namespace powerDev.Common.Models
{
    public partial class AnnualRateItem
    {
        public virtual int Year { get; set; }
        public virtual decimal Value { get; set; }
    }

    public partial class TodOptimizerRequestBase
    {
        public virtual Guid ProjectId { get; set; }
        public virtual decimal ChargeDischargeLimit { get; set; }
        public virtual decimal BatteryCapacity { 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 UnavailabilityLoss { get; set; }
        public virtual decimal OtherLosses { get; set; }
        public virtual bool EnableCapacity { get; set; }
        public virtual IEnumerable<AnnualRateItem> EnergySchedule { get; set; }
        public virtual IEnumerable<AnnualRateItem> CapacitySchedule { get; set; }
        public virtual IEnumerable<YoyFactorOptimizarItem> YoyFactors { get; set; }
        public virtual IEnumerable<TodOptimizerRequestItem> Data { get; set; }
        public virtual Guid ApiActionId { get; set; }
    }

    public partial class TodOptimizerRequestItem
    {
        public virtual int Year { get; set; }
        public virtual int Month { get; set; }
        public virtual int Hour { get; set; }
        public virtual int WeekDay { get; set; }
        public virtual decimal EnergyPrice { get; set; }
        public virtual decimal CapacityPrice { get; set; }
    }

    public partial class TodOptimizerResponse
    {
        public TodOptimizerResponse()
        {
            TestItems = new List<TodOptimizerResponseItem>{};
        }

        public virtual ApiResponseStatus Status { get; set; }
        public virtual string Message { get; set; }
        public virtual Guid ApiActionId { get; set; }
        public virtual List<TodOptimizerResponseItem> TestItems { get; set; }
    }

    public partial class TodOptimizerResponseItem
        : TodOptimizerRequestItem
    {
        public virtual decimal ChargeState { get; set; }
        public virtual decimal Charging { get; set; }
        public virtual decimal Loss { get; set; }
        public virtual decimal ChargeRate { get; set; }
    }

    public partial class YoyFactorOptimizarItem
    {
        public virtual int Year { get; set; }
        public virtual decimal Factor { get; set; }
    }

}

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

}

namespace powerDev.Optimization.ServiceModel
{
    public partial class TODOptimizerRequest
        : TodOptimizerRequestBase
    {
    }

}

C# TODOptimizerRequest DTOs

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

HTTP + JSV

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

POST /optimizer/tod HTTP/1.1 
Host: dev-optimization.power.dev 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	projectId: 00000000000000000000000000000000,
	chargeDischargeLimit: 0,
	batteryCapacity: 0,
	chargeEfficiency: 0,
	dischargeEfficiency: 0,
	paraciticLossesOperation: 0,
	paraciticLossesResting: 0,
	hvacLosses: 0,
	acCablingLosses: 0,
	transformatorLosses: 0,
	thermalLosses: 0,
	unavailabilityLoss: 0,
	otherLosses: 0,
	enableCapacity: False,
	apiActionId: 00000000000000000000000000000000
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	status: Undefined,
	message: String,
	apiActionId: 00000000000000000000000000000000,
	testItems: 
	[
		{
			chargeState: 0,
			charging: 0,
			loss: 0,
			chargeRate: 0,
			year: 0,
			month: 0,
			hour: 0,
			weekDay: 0,
			energyPrice: 0,
			capacityPrice: 0
		}
	]
}