Prvi
This commit is contained in:
37
ShellyExporter/Metrics.cs
Normal file
37
ShellyExporter/Metrics.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System.Text;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace ShellyExporter
|
||||
{
|
||||
public class Metrics
|
||||
{
|
||||
public static async Task<StringBuilder> Get(string path, string name)
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
|
||||
var client = new HttpClient();
|
||||
var response = await client.GetStringAsync(path);
|
||||
|
||||
dynamic responseObject = JsonConvert.DeserializeObject(response);
|
||||
|
||||
if (responseObject == null)
|
||||
return sb;
|
||||
|
||||
if (responseObject.meters != null)
|
||||
{
|
||||
sb.AppendLine($"meters_power_wats{{item=\"{name}\"}} {responseObject.meters[0].power}");
|
||||
sb.AppendLine($"meters_overpower_wats{{item=\"{name}\"}} " + responseObject.meters[0].overpower);
|
||||
sb.AppendLine($"meters_is_valid{{item=\"{name}\"}} " + (responseObject.meters[0].is_valid == "True" ? 1 : 0));
|
||||
sb.AppendLine($"meters_timestamp{{item=\"{name}\"}} " + responseObject.meters[0].timestamp);
|
||||
sb.AppendLine($"meters_power_total{{item=\"{name}\"}} " + responseObject.meters[0].total);
|
||||
}
|
||||
|
||||
if (responseObject.temperature != null)
|
||||
{
|
||||
sb.AppendLine($"temperature{{item=\"{name}\"}} " + responseObject.temperature);
|
||||
}
|
||||
|
||||
return sb;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user