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

Corsair Hydro H115i Pro XT not working due to lack of pump channel #11

Open Inverness opened 1 year ago

Inverness commented 1 year ago

Control for my Corsair Hydro H115i Pro XT does not work because the pump speed is not settable directly, which the plugin tries to do in PumpDuty.Reset().

Instead, the pump mode can be set to one of three modes. How this is done is documented here: https://github.com/liquidctl/liquidctl/blob/main/docs/corsair-platinum-pro-xt-guide.md

Note that this is a different issue with a different model than what is documented here: https://github.com/jmarucha/FanControl.Liquidctl/issues/9

Here is the log:

10/21/2022 8:42:20 AM: System.Exception: liquidctl returned non-zero exit code 1. Last stderr output:
WARNING: python -m liquidctl.cli is deprecated, prefer python -m liquidctl
ERROR: unexpected error with Corsair Hydro H115i Pro XT: ValueError("unknown channel, should be one of: 'fan', 'fan1', 'fan2'")

   at FanControl.Liquidctl.LiquidctlCLIWrapper.LiquidctlCall(String arguments)
   at FanControl.Liquidctl.LiquidctlDevice.PumpDuty.Reset()
   at FanControl.Domain.Control..ctor(IControlSensor control, IControlConfig controlConfig, IFanCurveRepository fanCurveRepository, ISensorRepository sensorRepository) in C:\Users\Remi\source\repos\FanControl\FanControl.Library\Domain\Control.cs:line 39
   at FanControl.ViewModels.ControlViewModel..ctor(IControlSensor controlSensor, ObservableCollection`1 fanCurves, ObservableCollection`1 fanSensors, IApplicationClock applicationClock, Func`1 selectMatchingFan, Func`2 automaticSelectMatchingFan, Func`2 automaticStartDetectionFan, Func`2 automaticStopDetectionSingleFan, Func`2 showForceApplyDialog) in C:\Users\Remi\source\repos\FanControl\FanControl.App\ViewModels\ControlViewModel.cs:line 72
   at FanControl.ViewModels.MainWindowViewModel.<LoadSensors>b__140_4(IControlSensor cs) in C:\Users\Remi\source\repos\FanControl\FanControl.App\ViewModels\MainWindowViewModel.cs:line 617
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at FanControl.MVVM.Extentions.AddRange[T](ObservableCollection`1 observableCollection, IEnumerable`1 items) in C:\Users\Remi\source\repos\FanControl\FanControl.Library\MVVM\Extentions.cs:line 11
   at FanControl.ViewModels.MainWindowViewModel.<ComputerAccessLayer_Refreshed>b__143_0() in C:\Users\Remi\source\repos\FanControl\FanControl.App\ViewModels\MainWindowViewModel.cs:line 653
   at System.Windows.Threading.DispatcherOperation.InvokeDelegateCore()
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Windows.Threading.DispatcherOperation.Wait(TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherOperation operation, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback, DispatcherPriority priority, CancellationToken cancellationToken, TimeSpan timeout)
   at System.Windows.Threading.Dispatcher.Invoke(Action callback)
   at System.Action.Invoke()
   at FanControl.Domain.ComputerAccessLayer.Refresh() in C:\Users\Remi\source\repos\FanControl\FanControl.Library\Domain\ComputerAccessLayer.cs:line 45
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at FanControl.ViewModels.Commands.SaveAndRefreshCommand.<<Execute>b__5_0>d.MoveNext() in C:\Users\Remi\source\repos\FanControl\FanControl.App\ViewModels\Commands\SaveAndRefreshCommand.cs:line 38
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at FanControl.Domain.DialogService.<>c__DisplayClass13_0`1.<<ProgressDialog>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)