This commit is contained in:
David Štaleker
2024-01-12 20:36:14 +01:00
parent 4f9e8f0d8e
commit 2184fea04a
11 changed files with 290 additions and 0 deletions

37
ShellyExporter/Metrics.cs Normal file
View 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;
}
}
}