From c9dc4abe8ed71b63e7fe740288192ce7af9c21ba Mon Sep 17 00:00:00 2001 From: Frank Bakker Date: Wed, 12 Jan 2022 19:51:03 +0100 Subject: [PATCH] Fix #560 Device with all numeric name cannot be deserialized --- .../Json/HassDeviceConverterTests.cs | 2 +- .../Common/HomeAssistant/Model/HassDevice.cs | 3 ++- ...sDeviceModelConverter.cs => ReadNumberAsStringConverter.cs} | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) rename src/Client/NetDaemon.HassClient/Internal/Json/{HassDeviceModelConverter.cs => ReadNumberAsStringConverter.cs} (91%) diff --git a/src/Client/NetDaemon.HassClient.Tests/Json/HassDeviceConverterTests.cs b/src/Client/NetDaemon.HassClient.Tests/Json/HassDeviceConverterTests.cs index f120815fe..e95dcfa35 100644 --- a/src/Client/NetDaemon.HassClient.Tests/Json/HassDeviceConverterTests.cs +++ b/src/Client/NetDaemon.HassClient.Tests/Json/HassDeviceConverterTests.cs @@ -20,7 +20,7 @@ public void TestConvertionWithNumericValue() ""connections"": [], ""manufacturer"": ""Google Inc."", ""model"": 123123, - ""name"": ""My TV"", + ""name"": 123, ""sw_version"": null, ""id"": ""42cdda32a2a3428e86c2e27699d79ead"", ""via_device_id"": null, diff --git a/src/Client/NetDaemon.HassClient/Common/HomeAssistant/Model/HassDevice.cs b/src/Client/NetDaemon.HassClient/Common/HomeAssistant/Model/HassDevice.cs index 64d17b92b..9a8a8ab3c 100644 --- a/src/Client/NetDaemon.HassClient/Common/HomeAssistant/Model/HassDevice.cs +++ b/src/Client/NetDaemon.HassClient/Common/HomeAssistant/Model/HassDevice.cs @@ -5,13 +5,14 @@ public record HassDevice [JsonPropertyName("manufacturer")] public string? Manufacturer { get; init; } [JsonPropertyName("model")] - [JsonConverter(typeof(HassDeviceModelConverter))] + [JsonConverter(typeof(ReadNumberAsStringConverter))] public string? Model { get; init; } [JsonPropertyName("id")] public string? Id { get; init; } [JsonPropertyName("area_id")] public string? AreaId { get; init; } + [JsonConverter(typeof(ReadNumberAsStringConverter))] [JsonPropertyName("name")] public string? Name { get; init; } [JsonPropertyName("name_by_user")] public string? NameByUser { get; init; } diff --git a/src/Client/NetDaemon.HassClient/Internal/Json/HassDeviceModelConverter.cs b/src/Client/NetDaemon.HassClient/Internal/Json/ReadNumberAsStringConverter.cs similarity index 91% rename from src/Client/NetDaemon.HassClient/Internal/Json/HassDeviceModelConverter.cs rename to src/Client/NetDaemon.HassClient/Internal/Json/ReadNumberAsStringConverter.cs index 5fcedf510..faa5db566 100644 --- a/src/Client/NetDaemon.HassClient/Internal/Json/HassDeviceModelConverter.cs +++ b/src/Client/NetDaemon.HassClient/Internal/Json/ReadNumberAsStringConverter.cs @@ -1,6 +1,6 @@ namespace NetDaemon.Client.Internal.Json; -internal class HassDeviceModelConverter : JsonConverter +internal class ReadNumberAsStringConverter : JsonConverter { public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {