jmarucha / FanControl.Liquidctl

Get access to the pump and temperature sensors of your AIO in FanControl
GNU General Public License v3.0
40 stars 17 forks source link

Loading FanControl.Liquidctl v0.1.1 with latest and prebuilt liquidctl exeutable crashes FanControl at application startup #22

Open beatsgo opened 1 year ago

beatsgo commented 1 year ago

I'm running liquidictl v1.12.1 from a virtualize python environment on Windows 10 and come upon this message when starting up the latest build of Fancontrol (V1.51). This is without the prebuilt executable in the plugin directory. Currently running the latest build of liquidctl (v1.12.1) through python 3.11.

3/25/2023 11:00:52 AM: System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at FanControl.Liquidctl.LiquidctlCLIWrapper.LiquidctlCall(String arguments)
   at FanControl.Liquidctl.LiquidctlPlugin.Initialize()
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Open()

As a precaution, I disabled the path and python variables to it and placed the latest built of liquidctl directly into the plugin folder. Same result (though I would expect this).


3/25/2023 11:32:57 AM: Newtonsoft.Json.JsonReaderException: Could not convert string to double: balanced. Path '[0].status[3].value', line 1, position 290.
   at Newtonsoft.Json.JsonReader.ReadDoubleString(String s)
   at Newtonsoft.Json.JsonTextReader.FinishReadQuotedNumber(ReadType readType)
   at Newtonsoft.Json.JsonTextReader.ReadAsDouble()
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at FanControl.Liquidctl.LiquidctlCLIWrapper.ReadStatus()
   at FanControl.Liquidctl.LiquidctlPlugin.Load(IPluginSensorsContainer _container)
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Open()

Just for sanity check I reverted back to the originally built liquidctl file from the latest version of the plugin and still having the same problem

3/25/2023 11:20:56 AM: System.Exception: liquidctl returned non-zero exit code -1073741819. Last stderr output:
WARNING: python -m liquidctl.cli is deprecated, prefer python -m liquidctl

   at FanControl.Liquidctl.LiquidctlCLIWrapper.LiquidctlCall(String arguments)
   at FanControl.Liquidctl.LiquidctlPlugin.Initialize()
   at FanControl.Domain.BackendProviders.Plugin.PluginBackendProvider.Open()

Additional relevant information: The provided liquidictl provided with the plugin provide the following input with initializing:

PS C:\FanControl\Plugins> .\liquidctl.exe initialize
WARNING: python -m liquidctl.cli is deprecated, prefer python -m liquidctl
PS C:\FanControl\Plugins> .\liquidctl.exe --version
liquidctl v0.0.0-unknown (Windows-10-10.0.19045-SP0)

From the python virtualize environment

PS C:\python_venv\Scripts> .\liquidctl.exe initialize
Corsair Hydro H100i Pro
└── Firmware version    1.0.4.0

PS C:\python_venv\Scripts> .\liquidctl.exe --version
liquidctl v1.12.1 (Windows-10-10.0.19045-SP0)
beatsgo commented 1 year ago

Side edit note: I am looking into this fork as mentioned in this thread #20