using System.Text; using Newtonsoft.Json; namespace ShellyExporter { public class Metrics { public static async Task 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; } } }