fa258cf09b
-Update libreria x Pro3Em
67 lines
2.4 KiB
C#
67 lines
2.4 KiB
C#
using EgwProxy.Shelly.DTO.Gen2;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace EgwProxy.Shelly.Converters
|
|
{
|
|
public class EnergyDtoConverter : JsonConverter<EnergyDto>
|
|
{
|
|
public override EnergyDto ReadJson(JsonReader reader, Type objectType, EnergyDto existingValue, bool hasExistingValue, JsonSerializer serializer)
|
|
{
|
|
JObject obj = JObject.Load(reader);
|
|
var dto = new EnergyDto
|
|
{
|
|
Id = (int)obj["id"],
|
|
NeutralCurrent = obj["n_current"]?.ToObject<double?>() ?? 0,
|
|
TotalCurrent = (double)obj["total_current"],
|
|
TotalActivePower = (double)obj["total_act_power"],
|
|
TotalApparentPower = (double)obj["total_aprt_power"],
|
|
UserCalibratedPhase = obj["user_calibrated_phase"]?.ToObject<List<double>>() ?? new List<double>()
|
|
};
|
|
|
|
dto.PhaseA = new PhaseDataDto
|
|
{
|
|
Current = (double)obj["a_current"],
|
|
Voltage = (double)obj["a_voltage"],
|
|
ActivePower = (double)obj["a_act_power"],
|
|
ApparentPower = (double)obj["a_aprt_power"],
|
|
PowerFactor = (double)obj["a_pf"],
|
|
Frequency = (double)obj["a_freq"]
|
|
};
|
|
|
|
dto.PhaseB = new PhaseDataDto
|
|
{
|
|
Current = (double)obj["b_current"],
|
|
Voltage = (double)obj["b_voltage"],
|
|
ActivePower = (double)obj["b_act_power"],
|
|
ApparentPower = (double)obj["b_aprt_power"],
|
|
PowerFactor = (double)obj["b_pf"],
|
|
Frequency = (double)obj["b_freq"]
|
|
};
|
|
|
|
dto.PhaseC = new PhaseDataDto
|
|
{
|
|
Current = (double)obj["c_current"],
|
|
Voltage = (double)obj["c_voltage"],
|
|
ActivePower = (double)obj["c_act_power"],
|
|
ApparentPower = (double)obj["c_aprt_power"],
|
|
PowerFactor = (double)obj["c_pf"],
|
|
Frequency = (double)obj["c_freq"]
|
|
};
|
|
|
|
return dto;
|
|
}
|
|
|
|
public override void WriteJson(JsonWriter writer, EnergyDto value, JsonSerializer serializer)
|
|
{
|
|
throw new NotImplementedException("Serialization not implemented");
|
|
}
|
|
}
|
|
|
|
}
|