Comments (10)
Since this issue was bugging me for some time now, I made a custom fork of liquidctl and this plugin, which stops liquidctl from starting every second by using a custom made interactive mode in liquidctl. Haven't tested it at all on anything else than my computer, so use at your own risk if you want to. I'm just leaving this here if anyone more knowledgable is interested in using this approach and maybe commit a better change to liquidctl and this plugin and needs a base start which works. Link
from fancontrol.liquidctl.
One way to fix it. Whitelist entire FanControl folder in Windows Defender. Instant fix to high CPU usage
from fancontrol.liquidctl.
One way to fix it. Whitelist entire FanControl folder in Windows Defender. Instant fix to high CPU usage
that's not a fix, liquidctl.exe is constantly being open and closed, making unnecessary writes to storage and taxing the cpu, rising temperatures.
hmmm, maybe its Fan Control that is trying to poll the exe the same way it does with dll files, when it should just do that only with the dll's, but liquidctl should actualy let us know if that's the case so we can open an issue in fan control.
EDIT: It is polling the exe the same way it does the dll's, but it's just the way it is, liquidctl works that way and is not efficient. I found a workaround launching it (liquidctl.exe) with task scheduler and argument initialize all, it lets me use HWiNFO for liquid temperature and pump speed reliably.
from fancontrol.liquidctl.
@jmarucha maybe you can change liquidctl.exe out of plugins fodler so it isn't called by FanControl every second?
I tried changing LiquidctlCLIWrapper.cs:11 to public static string liquidctlexe = "liquidctl\liquidctl.exe";
But I'm a mess in windows with WSL and python3, it has some errors when executing build-liquidctl.sh, so becasue I don't even know if changing that line in wrapper.cs will work and re-path I'll just quit, but please move that .exe out of plugins folder
from fancontrol.liquidctl.
@SuspiciousActivity could you create pull requests on the original repos ?
from fancontrol.liquidctl.
Since this issue was bugging me for some time now, I made a custom fork of liquidctl and this plugin, which stops liquidctl from starting every second by using a custom made interactive mode in liquidctl. Haven't tested it at all on anything else than my computer, so use at your own risk if you want to. I'm just leaving this here if anyone more knowledgable is interested in using this approach and maybe commit a better change to liquidctl and this plugin and needs a base start which works. Link
works in my pc with Kraken X73, thanks!!!
from fancontrol.liquidctl.
Since this issue was bugging me for some time now, I made a custom fork of liquidctl and this plugin, which stops liquidctl from starting every second by using a custom made interactive mode in liquidctl. Haven't tested it at all on anything else than my computer, so use at your own risk if you want to. I'm just leaving this here if anyone more knowledgable is interested in using this approach and maybe commit a better change to liquidctl and this plugin and needs a base start which works. Link
Hi,
I tried to use your fork, but I get "LiquidctlPlugin could not initialize or has no sensors." message when starting Fan Control (v149). Liquidctl is working OK, beacause if run liquidctl status I get:
ASUS Aura LED Controller (experimental)
├── ARGB channels: 3
└── RGB channels: 1
Asetek 690LC (assuming EVGA CLC)
├── Liquid temperature 34.7 °C
├── Fan speed 0 rpm
├── Pump speed 2910 rpm
└── Firmware version 2.10.0.0
I think that it fails because it's trying to interpre "Firmware version" as sensor data... because I get this in the Fan Control log:
-
- 2023 18:20:02: Newtonsoft.Json.JsonReaderException: Could not convert string to double: 2.10.0.0. Path '[1].status[3].value', line 1, position 587.
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()
- 2023 18:20:02: Newtonsoft.Json.JsonReaderException: Could not convert string to double: 2.10.0.0. Path '[1].status[3].value', line 1, position 587.
from fancontrol.liquidctl.
@kromosomX that should go in the issues section of the fork, I will cite the following comment from @jmarucha in regards to the executable needed for liquidctl:
In the case of that specific plugin, sadly yes, it would seem to be highly inefficient since it most likely call the exe at every update cycle ( 1 Hz ) to push and pull the information.
That's specific to that plugin implementation.
and since @SuspiciousActivity solution works for me I'll close this issue
from fancontrol.liquidctl.
@SuspiciousActivity have you tried talking to LiquidCTL team? The idea is amazing and I think they may be willing to get it upstream.
from fancontrol.liquidctl.
I am having issues with it recognizing a nzxt smart device 2, it works with my x72 but not the smart device 2
from fancontrol.liquidctl.
Related Issues (20)
- Corsair Hydro H115i Pro XT not working due to lack of pump channel
- Corsair ICUE H150i Pro XT
- Running the Liquidctl plugin for FanControl causes Elgato FaceCam to disconnect and reconnect sporadically when camera is idle
- Plugin will not run on Corsair iCUE H115i ELITE CAPELLIX using an iCUE Commander Core
- High CPU Usage (Antimalware Service Executable)
- Plugin not working with Corsair H100i v2 due to version naming HOT 29
- failed to load plug in HOT 1
- LiquidctlPlugin could not initialize or has no sensors HOT 9
- Loading FanControl.Liquidctl v0.1.1 with latest and prebuilt liquidctl exeutable crashes FanControl at application startup HOT 1
- Am I losing my mind here? HOT 6
- LiquidctlPlugin could not initialize or has no sensors
- H100i V2 only shows Pump RPM. No Fans RPM, Fan Control or Pump control HOT 1
- Constant hard drive writes? (8 to 15MB/s) HOT 2
- Plugin will not initialize
- Plugin Failing to Initialize yet Ramping up fans when FanControl refreshed
- Plugin will not initialize Possible fix
- Can I upgrade only liquidctl.exe? HOT 2
- Doesn't work when installed directly over Fan Control HOT 1
- Increased power usage
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fancontrol.liquidctl.