3em
This commit is contained in:
@@ -27,6 +27,31 @@ namespace ShellyExporter
|
||||
public string? Temperature { get; set; }
|
||||
public string? Voltage { get; set; }
|
||||
public string? Current { get; set; }
|
||||
|
||||
public string? Emeters1Power { get; set; }
|
||||
public string? Emeters1Pf { get; set; }
|
||||
public string? Emeters1Current { get; set; }
|
||||
public string? Emeters1Voltage { get; set; }
|
||||
public bool? Emeters1IsValid { get; set; }
|
||||
public string? Emeters1Total { get; set; }
|
||||
public string? Emeters1TotalReturned { get; set; }
|
||||
|
||||
public string? Emeters2Power { get; set; }
|
||||
public string? Emeters2Pf { get; set; }
|
||||
public string? Emeters2Current { get; set; }
|
||||
public string? Emeters2Voltage { get; set; }
|
||||
public bool? Emeters2IsValid { get; set; }
|
||||
public string? Emeters2Total { get; set; }
|
||||
public string? Emeters2TotalReturned { get; set; }
|
||||
|
||||
public string? Emeters3Power { get; set; }
|
||||
public string? Emeters3Pf { get; set; }
|
||||
public string? Emeters3Current { get; set; }
|
||||
public string? Emeters3Voltage { get; set; }
|
||||
public bool? Emeters3IsValid { get; set; }
|
||||
public string? Emeters3Total { get; set; }
|
||||
public string? Emeters3TotalReturned { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public static async Task<StringBuilder> Get(string path, string name, Version shellyVersion, Type type)
|
||||
@@ -49,20 +74,16 @@ namespace ShellyExporter
|
||||
throw new ArgumentOutOfRangeException(nameof(shellyVersion), shellyVersion, null);
|
||||
}
|
||||
break;
|
||||
//TODO
|
||||
// case Type.Em3:
|
||||
// switch (shellyVersion)
|
||||
// {
|
||||
// case Version.Gen1:
|
||||
// data = await GetPlugSGen1(path);
|
||||
// break;
|
||||
// case Version.Gen2:
|
||||
// data = await GetPlugSGen1(path);
|
||||
// break;
|
||||
// default:
|
||||
// throw new ArgumentOutOfRangeException();
|
||||
// }
|
||||
// break;
|
||||
case Type.Em3:
|
||||
switch (shellyVersion)
|
||||
{
|
||||
case Version.Gen1:
|
||||
data = await Get3EmGen1(path);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(type), type, null);
|
||||
}
|
||||
@@ -85,6 +106,51 @@ namespace ShellyExporter
|
||||
if (data.Temperature != null)
|
||||
sb.AppendLine($"temperature{{item=\"{name}\"}} " + data.Temperature);
|
||||
|
||||
if (data.Emeters1Power != null)
|
||||
sb.AppendLine($"emeters_1_power{{item=\"{name}\"}} " + data.Emeters1Power);
|
||||
if (data.Emeters1Pf != null)
|
||||
sb.AppendLine($"emeters_1_pf{{item=\"{name}\"}} " + data.Emeters1Pf);
|
||||
if (data.Emeters1Current != null)
|
||||
sb.AppendLine($"emeters_1_current{{item=\"{name}\"}} " + data.Emeters1Current);
|
||||
if (data.Emeters1Voltage != null)
|
||||
sb.AppendLine($"emeters_1_voltage{{item=\"{name}\"}} " + data.Emeters1Voltage);
|
||||
if (data.Emeters1IsValid != null)
|
||||
sb.AppendLine($"emeters_1_is_valid{{item=\"{name}\"}} " + ((bool)data.Emeters1IsValid ? 1 : 0));
|
||||
if (data.Emeters1Total != null)
|
||||
sb.AppendLine($"emeters_1_total{{item=\"{name}\"}} " + data.Emeters1Total);
|
||||
if (data.Emeters1TotalReturned != null)
|
||||
sb.AppendLine($"emeters_1_total_returned{{item=\"{name}\"}} " + data.Emeters1TotalReturned);
|
||||
|
||||
if (data.Emeters2Power != null)
|
||||
sb.AppendLine($"emeters_2_power{{item=\"{name}\"}} " + data.Emeters2Power);
|
||||
if (data.Emeters2Pf != null)
|
||||
sb.AppendLine($"emeters_2_pf{{item=\"{name}\"}} " + data.Emeters2Pf);
|
||||
if (data.Emeters2Current != null)
|
||||
sb.AppendLine($"emeters_2_current{{item=\"{name}\"}} " + data.Emeters2Current);
|
||||
if (data.Emeters2Voltage != null)
|
||||
sb.AppendLine($"emeters_2_voltage{{item=\"{name}\"}} " + data.Emeters2Voltage);
|
||||
if (data.Emeters2IsValid != null)
|
||||
sb.AppendLine($"emeters_2_is_valid{{item=\"{name}\"}} " + ((bool)data.Emeters2IsValid ? 1 : 0));
|
||||
if (data.Emeters2Total != null)
|
||||
sb.AppendLine($"emeters_2_total{{item=\"{name}\"}} " + data.Emeters2Total);
|
||||
if (data.Emeters2TotalReturned != null)
|
||||
sb.AppendLine($"emeters_2_total_returned{{item=\"{name}\"}} " + data.Emeters2TotalReturned);
|
||||
|
||||
if (data.Emeters3Power != null)
|
||||
sb.AppendLine($"emeters_3_power{{item=\"{name}\"}} " + data.Emeters3Power);
|
||||
if (data.Emeters3Pf != null)
|
||||
sb.AppendLine($"emeters_3_pf{{item=\"{name}\"}} " + data.Emeters3Pf);
|
||||
if (data.Emeters3Current != null)
|
||||
sb.AppendLine($"emeters_3_current{{item=\"{name}\"}} " + data.Emeters3Current);
|
||||
if (data.Emeters3Voltage != null)
|
||||
sb.AppendLine($"emeters_3_voltage{{item=\"{name}\"}} " + data.Emeters3Voltage);
|
||||
if (data.Emeters3IsValid != null)
|
||||
sb.AppendLine($"emeters_3_is_valid{{item=\"{name}\"}} " + ((bool)data.Emeters3IsValid ? 1 : 0));
|
||||
if (data.Emeters3Total != null)
|
||||
sb.AppendLine($"emeters_3_total{{item=\"{name}\"}} " + data.Emeters3Total);
|
||||
if (data.Emeters3TotalReturned != null)
|
||||
sb.AppendLine($"emeters_3_total_returned{{item=\"{name}\"}} " + data.Emeters3TotalReturned);
|
||||
|
||||
return sb;
|
||||
}
|
||||
|
||||
@@ -115,7 +181,59 @@ namespace ShellyExporter
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
private static async Task<Data> Get3EmGen1(string path)
|
||||
{
|
||||
var data = new Data();
|
||||
var client = new HttpClient();
|
||||
var response = await client.GetStringAsync(path + "/status");
|
||||
|
||||
dynamic responseObject = JsonConvert.DeserializeObject<dynamic>(response);
|
||||
|
||||
if (responseObject == null)
|
||||
return data;
|
||||
|
||||
if (responseObject.total_power != null)
|
||||
{
|
||||
data.Total = responseObject.total_power;
|
||||
}
|
||||
|
||||
if (responseObject.emeters != null)
|
||||
{
|
||||
data.Emeters1Power = responseObject.emeters[0].power;
|
||||
data.Emeters1Pf = responseObject.emeters[0].pf;
|
||||
data.Emeters1Current = responseObject.emeters[0].current;
|
||||
data.Emeters1Voltage = responseObject.emeters[0].voltage;
|
||||
data.Emeters1IsValid = responseObject.emeters[0].is_valid;
|
||||
data.Emeters1Total = responseObject.emeters[0].total;
|
||||
data.Emeters1TotalReturned = responseObject.emeters[0].total_returned;
|
||||
}
|
||||
|
||||
if (responseObject.emeters != null)
|
||||
{
|
||||
data.Emeters2Power = responseObject.emeters[1].power;
|
||||
data.Emeters2Pf = responseObject.emeters[1].pf;
|
||||
data.Emeters2Current = responseObject.emeters[1].current;
|
||||
data.Emeters2Voltage = responseObject.emeters[1].voltage;
|
||||
data.Emeters2IsValid = responseObject.emeters[1].is_valid;
|
||||
data.Emeters2Total = responseObject.emeters[1].total;
|
||||
data.Emeters2TotalReturned = responseObject.emeters[1].total_returned;
|
||||
}
|
||||
|
||||
if (responseObject.emeters != null)
|
||||
{
|
||||
data.Emeters3Power = responseObject.emeters[2].power;
|
||||
data.Emeters3Pf = responseObject.emeters[2].pf;
|
||||
data.Emeters3Current = responseObject.emeters[2].current;
|
||||
data.Emeters3Voltage = responseObject.emeters[2].voltage;
|
||||
data.Emeters3IsValid = responseObject.emeters[2].is_valid;
|
||||
data.Emeters3Total = responseObject.emeters[2].total;
|
||||
data.Emeters3TotalReturned = responseObject.emeters[2].total_returned;
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
private static async Task<Data> GetPlugSGen2(string path)
|
||||
{
|
||||
var data = new Data();
|
||||
|
||||
@@ -10,15 +10,21 @@
|
||||
"Url": "http://192.168.111.77:5050"
|
||||
},
|
||||
"Hosts": {
|
||||
"server": {
|
||||
"ip": "192.168.1.60",
|
||||
"type": 1,
|
||||
"version" : 1
|
||||
},
|
||||
"bojler": {
|
||||
"ip": "192.168.1.61",
|
||||
"type": 1,
|
||||
"version" : 2
|
||||
//"server": {
|
||||
// "ip": "192.168.1.60",
|
||||
// "type": 1,
|
||||
// "version": 1
|
||||
//},
|
||||
//"bojler": {
|
||||
// "ip": "192.168.1.61",
|
||||
// "type": 1,
|
||||
// "version": 2
|
||||
//},
|
||||
"pumpa": {
|
||||
"ip": "192.168.1.64",
|
||||
"type": 2,
|
||||
"version": 1
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user