Zum Inhalt springen

Lüftersteuerung

Plugins können der Lüfterdrehzahlsteuerung und Temperaturmeldung im Kühlsystem von SignalRGB ausgesetzt werden. Wenn aktiviert, können Benutzer Lüfterkurven einstellen, die Drehzahl überwachen und Temperaturwerte direkt in SignalRGB anzeigen.

Das allgemeine Muster für ein Plugin mit Lüftersteuerung ist:

  1. SupportsFanControl() exportieren und true zurückgeben, um SignalRGB mitzuteilen, dass dieses Gerät steuerbare Lüfter hat.
  2. Erkennen, welche Lüfter angeschlossen sind (über gerätespezifische Befehle oder RPM-Abfragen).
  3. In Initialize() für jeden erkannten Lüfter device.createFanControl() aufrufen.
  4. In jedem Frame in Render(): die aktuelle Drehzahl vom Gerät lesen und mit device.setRPM() melden, dann die gewünschte Geschwindigkeit von device.getFanLevel() lesen und auf das Gerät anwenden.

Prüfe immer device.fanControlDisabled() bevor du Lüfterpegel-Funktionen aufrufst. Die Lüftersteuerung kann nicht verfügbar sein, weil der Benutzer kein SignalRGB Pro hat oder weil er sie manuell deaktiviert hat.


Wird vom Plugin exportiert, um anzuzeigen, dass dieses Gerät Lüftersteuerung unterstützt. SignalRGB ruft dies während der Initialisierung auf, um zu entscheiden, ob die Cooling-UI für das Gerät angezeigt werden soll.

export function SupportsFanControl() { return true; }

Wenn dieser Export fehlt oder false zurückgibt, ist die Lüftersteuerungs-API zwar zugänglich, aber die Cooling-UI wird für das Gerät nicht erscheinen.


Gibt true zurück, wenn die Lüftersteuerung aktuell nicht verfügbar ist — entweder weil der Benutzer kein SignalRGB Pro hat oder weil er das Kühlsystem manuell deaktiviert hat.

Prüfe dies immer vor dem Aufruf von device.getFanLevel() oder device.getNormalizedFanLevel().

RückgabeTypBeschreibung
Disabledbooleantrue, wenn die Cooling-API nicht verfügbar ist
if (device.fanControlDisabled()) {
return;
}

Erstellt einen Lüfteregler mit der angegebenen ID. Ruf dies in Initialize() für jeden Lüfter auf, den das Gerät anbietet. Wenn bereits ein Regler mit dieser ID existiert, wird der Aufruf ignoriert.

ParameterTypBeschreibungBeispiel
FanIdstringEindeutige Kennung für diesen Lüfteregler"Fan1"
device.createFanControl("Fan1");
device.createFanControl("Fan2");

Entfernt den Lüfteregler mit der angegebenen ID. Verwende dies, wenn ein Lüfter nicht mehr erkannt wird oder das Gerät getrennt wird.

ParameterTypBeschreibungBeispiel
FanIdstringID des zu entfernenden Lüfterreglers"Fan1"

Gibt die gewünschte Lüftergeschwindigkeit für den angegebenen Lüfteregler als Prozentwert (0–100) zurück, abgeleitet aus den aktuellen Lüfterkurven-Einstellungen des Benutzers.

ParameterTypBeschreibungBeispiel
FanIdstringLüfteregler-ID"Fan1"
RückgabeTypBeschreibungBeispiel
FanSpeedintGewünschte Geschwindigkeit, 0–10042
let speed = device.getFanLevel("Fan1"); // z. B. 42 (bedeutet 42 %)

Gibt die gewünschte Lüftergeschwindigkeit als normalisierten Float (0.0–1.0) zurück. Nützlich, wenn das Gerät einen fraktionalen Tastgrad anstelle eines Prozentwerts erwartet.

ParameterTypBeschreibungBeispiel
FanIdstringLüfteregler-ID"Fan1"
RückgabeTypBeschreibungBeispiel
FanSpeedfloatGewünschte Geschwindigkeit, 0.0–1.00.42
let speed = device.getNormalizedFanLevel("Fan1"); // z. B. 0.42

Meldet die aktuell gemessene Drehzahl für einen Lüfteregler. Dieser Wert wird in der Cooling-UI und den Systemüberwachungsgraphen angezeigt.

ParameterTypBeschreibungBeispiel
FanIdstringLüfteregler-ID"Fan1"
RPMintAktuelle Lüftergeschwindigkeit in U/min1337
let rpm = ReadRPMFromDevice("Fan1");
device.setRPM("Fan1", rpm);

Plugins können auch Temperaturmessungen an das Kühlsystem von SignalRGB melden. Diese Werte erscheinen in der Systemüberwachung und können als Eingangsquelle für Lüfterkurven verwendet werden.

Erstellt einen Temperatursensor mit der angegebenen ID. Ruf dies in Initialize() für jede Temperaturquelle auf, die das Gerät anbietet.

ParameterTypBeschreibungBeispiel
SensorIdstringEindeutige Kennung für diesen Sensor"Coolant Temp"
device.createTemperatureSensor("Coolant Temp");

Entfernt den Temperatursensor mit der angegebenen ID.

ParameterTypBeschreibungBeispiel
SensorIdstringID des zu entfernenden Sensors"Coolant Temp"

Meldet die aktuelle Temperatur für den angegebenen Sensor. Ruf dies in jedem Frame auf, nachdem du den Wert vom Gerät gelesen hast.

ParameterTypBeschreibungBeispiel
SensorIdstringSensor-ID"Coolant Temp"
TemperaturefloatAktuelle Temperatur in Grad Celsius34.5
let temp = ReadTemperatureFromDevice();
device.SetTemperature("Coolant Temp", temp);

export function SupportsFanControl() { return true; }
export function Initialize() {
device.createFanControl("Fan1");
device.createFanControl("Fan2");
device.createTemperatureSensor("Coolant Temp");
}
export function Render() {
// Aktuelle Drehzahl melden — jedes Frame erforderlich, sonst friert die Geschwindigkeit ein
device.setRPM("Fan1", ReadRPM(1));
device.setRPM("Fan2", ReadRPM(2));
// Aktuelle Temperatur melden
device.SetTemperature("Coolant Temp", ReadTemp());
// Gewünschte Geschwindigkeit auf Hardware anwenden
if (!device.fanControlDisabled()) {
SetDeviceFanSpeed(1, device.getFanLevel("Fan1"));
SetDeviceFanSpeed(2, device.getFanLevel("Fan2"));
}
}
export function Shutdown() {
device.removeFanControl("Fan1");
device.removeFanControl("Fan2");
device.removeTemperatureSensor("Coolant Temp");
}