Snippets

OICP 2.1 Push EVSE Status | C#

Created by Gregor Schermuly last modified Julius Poessnecker
1
2
3
4
5
6
7
The service description can be found in the OICP 2.1 (CPO).

Section:
3.4.1 eRoamingPushEVSEStatus

To download the latest OICP Version, please visit our website:
https://www.hubject.com/downloads/
/// <summary>
/// Create a new task pushing EVSE status records onto the OICP server.
/// </summary>
/// <param name="EVSEStatus">An enumeration of EVSE Id and status records.</param>
/// <param name="EVSEStatus">An enumeration of EVSE Id and status records.</param>
/// <param name="OICPAction">An optional OICP action.</param>
/// <param name="OperatorId">An optional EVSE operator Id to use. Otherwise it will be taken from the EVSE data records.</param>
/// <param name="OperatorName">An optional EVSE operator name.</param>
/// <param name="QueryTimeout">An optional timeout for this query.</param>
public async Task<HTTPResponse<HubjectAcknowledgement>>

    PushEVSEStatus(IEnumerable<KeyValuePair<EVSE_Id, OICPEVSEStatus>>  EVSEStatus,
                   ActionType                                          OICPAction    = ActionType.update,
                   EVSEOperator_Id                                     OperatorId    = null,
                   String                                              OperatorName  = null,
                   TimeSpan?                                           QueryTimeout  = null)

{

    [...]

}
var EVSEStatus = new Dictionary<EVSE_Id, OICPEVSEStatusType>();
EVSEStatus.Add(EVSE_Id.Parse("DE*GEF*E123456789*1"), OICPEVSEStatusType.Available);
EVSEStatus.Add(EVSE_Id.Parse("DE*GEF*E123456789*2"), OICPEVSEStatusType.Occupied);

var req = new CPOClient("api.playground.hubject.com").

              PushEVSEStatus(EVSEStatus,
                             ActionType.insert,
                             OperatorId:    EVSEOperator_Id.Parse("DE*GEF"),
                             OperatorName:  "Test CPO 1",
                             QueryTimeout:  TimeSpan.FromSeconds(120)).

              ContinueWith(task => {

                  var Acknowledgement = task.Result.Content;

                  if (Acknowledgement.Result)
                      Console.WriteLine("success!");

                  else
                  {
                      Console.WriteLine(Acknowledgement.StatusCode.Code);
                      Console.WriteLine(Acknowledgement.StatusCode.Description);
                      Console.WriteLine(Acknowledgement.StatusCode.AdditionalInfo);
                  }

              });

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.