FanControl.Liquidctl icon indicating copy to clipboard operation
FanControl.Liquidctl copied to clipboard

NZXT Kraken X72 - Lack of Pump Duty causes unhandled exception and no UI in Fan Control

Open reelmccoy opened this issue 2 years ago • 2 comments

With a system with a NZXT Kraken X72, there is no pump duty in the status return. Just pump speed, fan speed and liquid temperature. This appears to cause an unhandled exception in FanControl.Liquidctl and exceptions in FanControl trying to construct UI elements.

In LiquidctlDevice.cs, the constructor that takes the JSON output, hasPumpDuty and hasPumpSpeed are being set based off of the other strings' key value.

        hasPumpSpeed = output.status.Exists(entry => entry.key == "Pump duty" && !(entry.value is null));
        if (hasPumpSpeed)
            pumpDuty = new PumpDuty(output);

        hasPumpDuty = output.status.Exists(entry => entry.key == "Pump speed" && !(entry.value is null));
        if (hasPumpDuty)
            pumpSpeed = new PumpSpeed(output);

should be:

        hasPumpDuty = output.status.Exists(entry => entry.key == "Pump duty" && !(entry.value is null));
        if (hasPumpDuty)
            pumpDuty = new PumpDuty(output);

        hasPumpSpeed = output.status.Exists(entry => entry.key == "Pump speed" && !(entry.value is null));
        if (hasPumpSpeed)
            pumpSpeed = new PumpSpeed(output);

With this change, FanControl loads successfully with the UI available and the X72's pump speed and temperature sensor data is available.

reelmccoy avatar May 24 '22 21:05 reelmccoy