diff --git a/EdenicExporter/Program.cs b/EdenicExporter/Program.cs index 43d423b..fa66670 100644 --- a/EdenicExporter/Program.cs +++ b/EdenicExporter/Program.cs @@ -26,12 +26,20 @@ namespace PrometheusExporterEdenic private readonly string _authToken; private readonly string _orgid; private readonly string _apimainurl = "https://api.edenic.io/api/v1/device"; + private string _devicename; + public string DeviceId { get; private set; } + + public async Task InitializeAsync() + { + DeviceId = await GetDeviceIdByName(_devicename); + } - public ApiClient(string authToken, string orgID) + public ApiClient(string authToken, string orgID, string devicename) { _client = new HttpClient(); _authToken = authToken; _orgid = orgID; + _devicename = devicename; _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(_authToken); } @@ -65,11 +73,32 @@ namespace PrometheusExporterEdenic public async Task GetDeviceIdByName(string name) { - dynamic result = await MakeApiRequest(""); - var jsonString = JsonSerializer.Serialize(result); - var devices = JsonSerializer.Deserialize>(jsonString); - var targetDevice = devices.FirstOrDefault((Func)(d => d.label == name)); - return targetDevice?.id; + try + { + dynamic result = await MakeApiRequest(""); + string jsonString = result.ToString(); // Convert dynamic to string + Console.WriteLine($"Raw JSON: {jsonString}"); // Debug output + + var devices = JsonSerializer.Deserialize>(jsonString); + Console.WriteLine($"Deserialized {devices.Count} devices"); // Debug output + + var targetDevice = devices.FirstOrDefault(d => d.label == name); + if (targetDevice != null) + { + Console.WriteLine($"Found device: {targetDevice.label}, ID: {targetDevice.id}"); // Debug output + return targetDevice.id; + } + else + { + Console.WriteLine($"No device found with label: {name}"); // Debug output + return null; + } + } + catch (Exception ex) + { + Console.WriteLine($"Error in GetDeviceIdByName: {ex.Message}"); // Debug output + return null; + } } } @@ -77,10 +106,6 @@ namespace PrometheusExporterEdenic { public static void Main(string[] args) { - string EDENIC_API_TOKEN = Environment.GetEnvironmentVariable("EDENIC_API_TOKEN"); - string EDENIC_ORG_ID = Environment.GetEnvironmentVariable("EDENIC_ORG_ID"); - ApiClient client = new ApiClient(EDENIC_API_TOKEN, EDENIC_ORG_ID); - Console.WriteLine(client.GetDeviceIdByName("The First One")); CreateHostBuilder(args).Build().Run(); } @@ -122,9 +147,15 @@ namespace PrometheusExporterEdenic var temperature = Metrics.CreateGauge("edenic_temperature", "Edenic temperature"); var ec = Metrics.CreateGauge("edenic_ec", "Edenic EC"); + string EDENIC_API_TOKEN = Environment.GetEnvironmentVariable("EDENIC_API_TOKEN"); + string EDENIC_ORG_ID = Environment.GetEnvironmentVariable("EDENIC_ORG_ID"); + string EDENIC_DEVICENAME = Environment.GetEnvironmentVariable("EDENIC_DEVICENAME"); + ApiClient client = new ApiClient(EDENIC_API_TOKEN, EDENIC_ORG_ID, EDENIC_DEVICENAME); Task.Run(async () => { + await client.InitializeAsync(); + Console.WriteLine($"Device ID: {client.DeviceId}"); while (true) { ph.Set(1); diff --git a/EdenicExporter/bin/Debug/net8.0/EdenicExporter.dll b/EdenicExporter/bin/Debug/net8.0/EdenicExporter.dll index f012ae7..4f28820 100644 Binary files a/EdenicExporter/bin/Debug/net8.0/EdenicExporter.dll and b/EdenicExporter/bin/Debug/net8.0/EdenicExporter.dll differ diff --git a/EdenicExporter/bin/Debug/net8.0/EdenicExporter.pdb b/EdenicExporter/bin/Debug/net8.0/EdenicExporter.pdb index 66d22e4..af5a239 100644 Binary files a/EdenicExporter/bin/Debug/net8.0/EdenicExporter.pdb and b/EdenicExporter/bin/Debug/net8.0/EdenicExporter.pdb differ diff --git a/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfo.cs b/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfo.cs index 488e0b5..cf37bb4 100644 --- a/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfo.cs +++ b/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("EdenicExporter")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9c7d7928e96cee04d634ce311c4f039de4040cb2")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f1be1e80b9c9b26103bc6df1148538674cdf99b9")] [assembly: System.Reflection.AssemblyProductAttribute("EdenicExporter")] [assembly: System.Reflection.AssemblyTitleAttribute("EdenicExporter")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfoInputs.cache b/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfoInputs.cache index 7f646a7..bdae545 100644 --- a/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfoInputs.cache +++ b/EdenicExporter/obj/Debug/net8.0/DotNet.Docker.AssemblyInfoInputs.cache @@ -1 +1 @@ -8b3979b2670092c3f16be63c7eaee07a5d3524e94fa5f7a6b9b1b75cbc91ce4c +119886f42dc5b610e5b763673658a8f8230bdd04e244e8c6f0c34a054a44ab6b diff --git a/EdenicExporter/obj/Debug/net8.0/EdenicExporter.dll b/EdenicExporter/obj/Debug/net8.0/EdenicExporter.dll index f012ae7..4f28820 100644 Binary files a/EdenicExporter/obj/Debug/net8.0/EdenicExporter.dll and b/EdenicExporter/obj/Debug/net8.0/EdenicExporter.dll differ diff --git a/EdenicExporter/obj/Debug/net8.0/EdenicExporter.pdb b/EdenicExporter/obj/Debug/net8.0/EdenicExporter.pdb index 66d22e4..af5a239 100644 Binary files a/EdenicExporter/obj/Debug/net8.0/EdenicExporter.pdb and b/EdenicExporter/obj/Debug/net8.0/EdenicExporter.pdb differ diff --git a/EdenicExporter/obj/Debug/net8.0/ref/EdenicExporter.dll b/EdenicExporter/obj/Debug/net8.0/ref/EdenicExporter.dll index 96e516b..580c7b5 100644 Binary files a/EdenicExporter/obj/Debug/net8.0/ref/EdenicExporter.dll and b/EdenicExporter/obj/Debug/net8.0/ref/EdenicExporter.dll differ diff --git a/EdenicExporter/obj/Debug/net8.0/refint/EdenicExporter.dll b/EdenicExporter/obj/Debug/net8.0/refint/EdenicExporter.dll index 96e516b..580c7b5 100644 Binary files a/EdenicExporter/obj/Debug/net8.0/refint/EdenicExporter.dll and b/EdenicExporter/obj/Debug/net8.0/refint/EdenicExporter.dll differ